/**
* 二分查找,找数,
* @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);
}
}
}