java 排列3_java中的三大排序算法
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/pqwGreenhand/article/details/53581577
一、冒泡排序
已知一組無序數(shù)據(jù)a[1]、a[2]、……a[n],需將其按升序排列。首先比較a[1]與a[2]的值,若a[1]大于a[2]則交換兩者的值,否則不變。再比較a[2]與a[3]的值,若a[2]大于a[3]則交換兩者的值,否則不變。再比較a[3]與a[4],依此類推,最后比較a[n-1]與a[n]的值。這樣處理一輪后,a[n]的值一定是這組數(shù)據(jù)中最大的。再對a[1]~a[n-1]以相同方法處理一輪,則a[n-1]的值一定是a[1]~a[n-1]中最大的。再對a[1]~a[n-2]以相同方法處理一輪,依此類推。共處理n-1輪后a[1]、a[2]、……a[n]就以升序排列了。
優(yōu)點(diǎn):穩(wěn)定,比較次數(shù)已知;
缺點(diǎn):慢,每次只能移動相鄰兩個數(shù)據(jù),移動數(shù)據(jù)的次數(shù)多。
二、選擇排序
已知一組無序數(shù)據(jù)a[1]、a[2]、……a[n],需將其按升序排列。首先比較a[1]與a[2]的值,若a[1]大于a[2]則交換兩者的值,否則不變。再比較a[1]與a[3]的值,若a[1]大于a[3]則交換兩者的值,否則不變。再比較a[1]與a[4],依此類推,最后比較a[1]與a[n]的值。這樣處理一輪后,a[1]的值一定是這組數(shù)據(jù)中最小的。再將a[2]與a[3]~a[n]以相同方法比較一輪,則a[2]的值一定是a[2]~a[n]中最小的。再將a[3]與a[4]~a[n]以相同方法比較一輪,依此類推。共處理n-1輪后a[1]、a[2]、……a[n]就以升序排列了。
優(yōu)點(diǎn):穩(wěn)定,比較次數(shù)與冒泡排序一樣,數(shù)據(jù)移動次數(shù)比冒泡排序少;
缺點(diǎn):相對之下還是慢。
三、插入排序
已知一組升序排列數(shù)據(jù)a[1]、a[2]、……a[n],一組無序數(shù)據(jù)b[1]、b[2]、……b[m],需將二者合并成一個升序數(shù)列。首先比較b[1]與a[1]的值,若b[1]大于a[1],則跳過,比較b[1]與a[2]的值,若b[1]仍然大于a[2],則繼續(xù)跳過,直到b[1]小于a數(shù)組中某一數(shù)據(jù)a[x],則將a[x]~a[n]分別向后移動一位,將b[1]插入到原來a[x]的位置這就完成了b[1]的插入。b[2]~b[m]用相同方法插入。(若無數(shù)組a,可將b[1]當(dāng)作n=1的數(shù)組a)
優(yōu)點(diǎn):穩(wěn)定,快;
缺點(diǎn):比較次數(shù)不一定,比較次數(shù)越少,插入點(diǎn)后的數(shù)據(jù)移動越多,特別是當(dāng)數(shù)據(jù)總量龐大的時候,但用鏈表可以解決這個問題。
這幾種代碼實(shí)現(xiàn):
冒泡排序:
for(int i=0;i
for(int j=0;j
if(ary[j]>ary[j+1]){
int t = ary[j];
ary[j]=ary[j+1];
ary[j+1]=t;
}
}
}
選擇排序:
for(int i=0;i
for(int j=i+1;j
if(ary[i]>ary[j]){
int t = ary[i];
ary[i]=ary[j];
ary[j]=t;
}
}
}
插入排序:
for (int i = 1; i < ary.length; i++) {
int temp = ary[i];
int j;
for (j = i - 1; j >= 0 && temp < ary[j]; j--) {
ary[j + 1] = ary[j];
}
ary[j + 1] = temp;
}
————————————————
版權(quán)聲明:本文為CSDN博主「pqwGreenhand」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/pqwGreenhand/article/details/53581577
總結(jié)
以上是生活随笔為你收集整理的java 排列3_java中的三大排序算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: v5系列服务器后面板不存在以下哪款指示,
- 下一篇: groupwise_GroupWise部