代码如下:
int [] a = new int[]{10,5,6,21,33,1,9};
for (int i=0,j=i;j<a.length-1;j=++i){
int ai = a[i+1];
while(ai<a[j]){
a[j+1]=a[j];
if(j-- == 0){
break;
}
}
a[j+1]=ai;
}
附带二分查找算法实现:
//二分查找算法
public static int binarySearch(Integer[] srcArray, int des) {
int low = 0;
int high = srcArray.length - 1;
while ((low <= high) && (low <= srcArray.length - 1)
&& (high <= srcArray.length - 1)) {
int middle = (high + low)/2 ;
if (des == srcArray[middle]) {
return middle;
} else if (des < srcArray[middle]) {
high = middle - 1;
} else {
low = middle + 1;
}
}
return -1;
}