基本排序算法

对10000个完全无序的随即数据排序表明,效率上:插入排序>选择排序>冒泡排序,效率差为2.3倍和1.75倍,即插入排序是冒泡排序的4.3倍。 插入排序:     public int[] insertSort(int[] data) {         for(int i=1,j;i<data.length;i++){             int tmp = data[i];             for(j=i;j>0&&tmp<data[j-1];j–){                 data[j]=data[j-1];             }             data[j]=tmp;         }             return data;     }

选择排序: public int[] selectionSort(int[] data){         for(int i=0;i<data.length-1;i++){             int least=i;             for(int j=i+1;j<data.length;j++){                 if(data[j]<data[least])                     least=j;             }             if(i!=least){                 int tmp=data[least];                 data[least]=data[i];                 data[i]=tmp;             }         }         return data;     }

冒泡排序:     public int[] bubbleSort(int[] data) {         int n=data.length;         for(int i=0;i<n-1;i++)             for(int j=n-1;j>i;j–)                 if(data[j]<data[j-1]){                     int tmp=data[j];                     data[j]=data[j-1];                     data[j-1]=tmp;                 }         return data;     }

点赞