用java写的常见排序

59 阅读1分钟

/**
* @author Think
*折半插入排序
*/

 

public class binInsertSort {
private static  int a[]={22,3,43,11,99,88,34,34,33,22,11,1};
     public static void main(String[] args) {
    int []b=binInsertSort(a,0,12);
    for(int i=0;i<b.length;i++){
    System.out.print(a[i]+"\t");
    }
}
    public static int[] binInsertSort(int[] a,int low,int high){
    for(int i=low+1;i<a.length;i++){
    //保存插入元素
    int temp=a[i];
    //设置初始区间 
    int hi=i-1;
    int lo=low;
    //折半决定插入位置
    while(lo<=hi){
    int mid=(hi+lo)/2;
    if(temp<a[mid]){
    hi=mid-1; 
    }else{
    lo=mid+1;
    }
    }
    //移动在temp那个之后的元素
    for(int j=i-1;j>hi;j--)
     a[j+1]=a[j];
    //插入元素temp
    a[hi+1]=temp;
    }
    return a;
    }

 

 

 

 

 

 

/**

创作打卡挑战赛

赢取流量/现金/CSDN周边激励大奖