您的位置:首页 > 其它

基本排序算法

2016-05-17 17:22 148 查看
对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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: