1.二分排序:数组中选择最后一个元素当做参考,从头开始遍历数组发现大于参数的元素则放大到参考值的位置。从尾遍历数组发现小于参考值的元素则放到上面的的位置。在现在的位置放参考元素。
代码:
public class ErFen2 {
/**
* @param args
*/
public static void main(String[] args) {
int[] a=new int[10];
for(int i=0;i<a.length;i++){
a[i]=(int)Math.round(Math.random()*10);
System.out.print(a[i]+"\t");
}
System.out.println("");
twosort(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"\t");
}
}
public static int[] twosort(int[] a,int low,int high){
int i,j,temp;
if(low<high){
i=low;
j=high;
temp=a[j];
while(i<j){
while(i<j&&a[i]<temp) i++;
if(i<j){
a[j]=a[i];
j--;
}
while(i<j&&a[j]>temp) j--;
if(i<j){
a[i]=a[j];
i++;
}
a[j]=temp;
}
twosort(a,low,j-1);
twosort(a,j+1,high);
}
return a;
}
}