簡單選擇排序(C語言)_第1頁
簡單選擇排序(C語言)_第2頁
簡單選擇排序(C語言)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、選擇排序是排序算法的一種,這里以從小到大排序?yàn)槔M(jìn)行講解?;舅枷爰芭e例說明 簡單選擇排序(從小到大)的基本思想是,首先,選出最小的數(shù),放在第一個位置;然后,選出第二小的數(shù),放在第二個位置;以此類推,直到所有的數(shù)從小到大排序。在實(shí)現(xiàn)上,我們通常是先確定第i小的數(shù)所在的位置,然后,將其與第i個數(shù)進(jìn)行交換。下面,以對 3 2 4 1 進(jìn)行選擇排序說明排序過程,使用min_index 記錄當(dāng)前最小的數(shù)所在的位置。第1輪 排序過程 (尋找第1小的數(shù)所在的位置)3 2 4 1(最初, min_index=1)3 2 4 1(3 2, 所以min_index=2)3 2 4 1(2 1, 所以 min_i

2、ndex=4, 這時候確定了第1小的數(shù)在位置4)1 2 4 3 (第1輪結(jié)果,將3和1交換,也就是位置1和位置4交換)第2輪 排序過程 (尋找第2小的數(shù)所在的位置)1 2 4 3(第1輪結(jié)果, min_index=2,只需要從位置2開始尋找)1 2 4 3(4 2, 所以min_index=2)1 2 4 3(3 2, 所以 min_index=2)1 2 4 3(第2輪結(jié)果,因?yàn)閙in_index位置剛好在第2個位置,無需交換)第3輪 排序過程 (尋找第3小的數(shù)所在的位置)1 2 4 3(第2輪結(jié)果, min_index=3,只需要從位置2開始尋找)1 2 4 3(4 3, 所以min_in

3、dex=4)1 2 3 4(第3輪結(jié)果,將3和4交換,也就是位置4和位置3交換)至此,排序完畢??偨Y(jié)及實(shí)現(xiàn) 選擇排序?qū)Υ笮镹的無序數(shù)組RN進(jìn)行排序,進(jìn)行N-1輪選擇過程。第i輪選取第i小的數(shù),并將其放在第i個位置上。當(dāng)?shù)贜-1次完成時,第N?。ㄒ簿褪亲畲螅┑臄?shù)自然在最后的位置上。下面給出選擇排序的C語言實(shí)現(xiàn)。1. #include2. #include3. #include 4. using namespace std;5. 6. 7. voidselect_sort(inta,int&n);/采用c+中的引用操作;8. 9. /選擇排序?qū)崿F(xiàn)10. voidselect_sort(inta,

4、int&n)/n為數(shù)組a的元素個數(shù)11. 12. /進(jìn)行N-1輪選擇13. for(inti=1-1;i=i;j-)18. 19. if(ajamin)20. 21. min=j;22. 23. 24.25. /將第i小的數(shù),放在第i個位置;如果剛好,就不用交換26. if(i!=min)27. 28. inttemp=ai;29. ai=amin;30. amin=temp;31. 32. 33. 34. 35. 36. intmain()37. 38. intnum=89,38,11,78,96,44,19,25;39. int N=sizeof(num)/sizeof(num0);/計(jì)算數(shù)組中元素的個數(shù)40.41. select_sort(num,N);42.43. for(inti=0;iN;i+)44. cout numiendl;45.46. system(pause);47. return0;48. 49. 注意:選擇排序是一種不穩(wěn)定的排序算法,可能會打亂兩個相同數(shù)字的原有順序。例如,序列 5 8 5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論