java 几种算法

来源:互联网 发布:站内搜索引擎优化 编辑:程序博客网 时间:2024/05/21 21:41

1.冒泡排序

public static void getBubbleSort(int[] array){

int temp=0;

for(int i=0;i<array,length-1;i++){

for(int j=i+1;j<array.length;j++){

if(array[i])>array[j]{

temp=array[j];

array[j]=array[i];

array[i]=temp;

}

}

}

}

2.折半查找:(效率比较高,但是要求,数组必须有序,)

//查找数组中某个值的角标

//二分查找法,效率高,但是缺点,需要数组已经排好序public static int test(int[] array,int x){    int min =0;    int max = array.length-1;    while (min<=max){        int mid=min + (max-min)/2;        if(x==array[mid]){            return mid;        }else if(x>array[mid]){             min=mid+1;         } else if(x<array[mid]){              max = mid-1;         }    }    return  -1;}

3.直接插入排序

public static void getInsert(int[] array){

int temp=0;

for(int i=1;i<array.length;i++){

int x=i-1;

temp=array[i];

for(;x>=0&&temp<array[x];x--){

array[x+1]=array[x];

}

array[x+1]=temp;

}

}

//希尔排序public static void paixu2(int[] array) {    double len=array.length;    int temp=0;    while(true){         len =Math.ceil(len/2);        int leng =(int) len;        for(int i=0;i<leng;i++){             for(int x=i+leng;x<array.length;x+=leng){                   int j=x-leng;                   temp=array[x];                 for(;j>=0&&temp<array[j];j-=leng){                     array[j+leng]=array[j];                 }                 array[j+leng]=temp;             }        }        if(leng==1){             break;        }    }}



0 0
原创粉丝点击