1.原理
選擇排序和冒泡排序類似,但是選擇排序是采用一個變量來接受 最小值的下標(biāo),因此每一趟比較只需要交換一次數(shù)組元素即可。
2.舉例
數(shù)組a[]={21,3,44,22},用選擇排序算法升序排序。 設(shè)置一個變量min來接受最小值下標(biāo),min初始值為0,即a[min]=a[1] 第一趟:a[1]與a[min]比,3小于21,于是min=1 a[2]與a[min]比,3小于44,min不變 a[3]與a[min]比,3小于22,min不變 將a[min]與a[0]互換,a[]={3,21,44,22} 選擇出了最小的數(shù)3,放在數(shù)組第一位,3不參與接下來比較 因此min往后挪一位,min=1 第二趟:a[2]與a[min]比,21小于44,min不變 a[3]與a[min]比,21小于22,min不變 將a[min]與a[1]互換,a[]={3,21,44,22} 選擇出了最小的數(shù)21放在數(shù)組第二位,3和21不參與接下來比較 因此min往后挪一位,min=2 第三趟: a[3]與a[min]比,44大于22,于是min=3 將a[min]與a[2]互換,a[]={3,21,22,44} 排序完畢
3.java代碼
package sort;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int a[]={21,3,44,22};
selectSort(a);
System.out.println(Arrays.toString(a));
}
//選擇排序
public static void selectSort(int[] a){
int min;
int temp;
if(a==null||a.length==0){
return;
}
for(int i=0;i<a.length-1;i++){
min=i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min=j;
}
}
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
}
輸出結(jié)果:[2, 3, 21, 22, 44]
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
分享文章:選擇排序算法-創(chuàng)新互聯(lián)
本文來源:http://aaarwkj.com/article18/ccgjdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站制作、網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、App設(shè)計、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容