两个小程序
博客专区 > hehe_ 的博客 > 博客详情
两个小程序
hehe_ 发表于2年前
两个小程序
  • 发表于 2年前
  • 阅读 21
  • 收藏 0
  • 点赞 2
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 手写编程与机器上编程还是有区别的

 

 

/**
	 * 二分查找,找数,
	 * @param array
	 * @param data
	 * @return 返回下表,没有返回-1
	 */
	public int find(int[] array,int data){
		
		/**
		 * 1 2 3 4 5 6 7 8   找  1
		 *      
		 *      1.跟4比
		 *      2.跟2比
		 *      3.找到了
		 * 
		 * 有序数组二分查找,从中间开始比较,小于就往左,大于就往右 递归
		 */
		
		int minIndex = 0;
		int maxIndex = array.length - 1;
		int middle = array.length /2;
		
		while(minIndex<=maxIndex){
			if(data == array[middle])
				return middle;
			else if(data<middle)
				maxIndex = middle -1;
			else
				minIndex = middle+1;
		}
		return -1;
	}

 

       /**
		 * 公鸡 3元/只  母鸡5元/只   小鸡  3只/元
		 * 100 元 买100只鸡
		 * 各几个鸡
		 * 
		 * 分析:
		 * 
		 * 公鸡 a 母鸡b 小鸡c
		 * 3a+5b+c/3=100 钱
		 * a+b+c=100 个
		 * c%3=0
		 * 
		 */
			
		/**
		 * 暴力解决
		 */
		
		for(int a =0 ;a<100;a++){
			for(int b=0;b<100;b++){
				int c=100-a-b;
				if(3*a+5*b+c/3==100 && c%3==0){
					System.out.println("公鸡:"+a+",母鸡:"+b+",小鸡:"+c);
				}
			}
			
		}

 

package net.mine.std.struct;

public class FastSort {

	public void robin(int s[],int l, int r){

		if(l < r){
			int i = l,j = r, t = s[l];
			
			while(i<j){
				
				while(i< j && s[j]>t){
					j--;
				}
				if(i<j){
					s[i] = s[j];
					i++;
				}
				
				while(i<j && s[i] <= t){
					i++;
				}
				if(i< j){
					s[j] = s[i];
					j--;
				}
			}
			s[i] = t;
			
			robin(s, l, i-1);
			robin(s, i+1, r);
		}
		
	}
	
	public static void main(String args[]){
		
		int arr[]= {9,8,3,2,1,6,10,5};
		
		FastSort s = new FastSort();
		s.robin(arr, 0, arr.length-1);
		
		for(int i : arr){
			System.out.println(i);
		}
		
	}
	
}

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 11
码字总数 5847
×
hehe_
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: