1 選擇排序法的定義
選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是:第一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,然后再從剩余的未排序元素中尋找到最小(大)元素,然后放到已排序的序列的末尾。以此類推,直到全部待排序的數據元素的個數為零。選擇排序是不穩定的排序方法。(來自百度百科)
2 選擇排序法詳細過程解析
假定有這樣一個數組
int[] nums = new int[]{6, 4, 5, 1, 3, 2};
現在需要將他從大到小排列。
選擇排序法代碼如下:
排序詳細過程:
[6, 4, 5, 1, 3, 2] 第一次遍歷6和2交換位置
[6, 5, 4, 1, 3, 2] 第二次遍歷5和4交換位置
[6, 5, 4, 1, 3, 2] 第三次遍歷4位置不變
[6, 5, 4, 3, 1, 2] 第四次遍歷3和1交換位置
[6, 5, 4, 3, 2, 1] 第五次遍歷2和1交換位置
3 選擇排序法時間復雜度
數據比較次數:
C = (N-1)+(N-2)+……+2+1=(((N-1)+1)*(N-1)) / 2=(N^2)/2-N/2
數據交換次數:
M = N-1
時間復雜度:
C+M=(N^2)/2-N/2+ N-1=O(N^2)
因此,選擇排序的時間復雜度為O(N^2)
4 結語
感謝各位的閱讀,如有問題,歡迎大家留言反饋,我會在第一時間修正。
-
算法
+關注
關注
23文章
4631瀏覽量
93423 -
C語言
+關注
關注
180文章
7615瀏覽量
137835 -
排序算法
+關注
關注
0文章
53瀏覽量
10105
發布評論請先 登錄
相關推薦
詳解Linux sort命令之掌握排序技巧與實用案例
TimSort:一個在標準函數庫中廣泛使用的排序算法
加密算法的選擇對于加密安全有多重要?
bp神經網絡算法過程包括
神經網絡反向傳播算法的推導過程
FPGA實現雙調排序算法的探索與實踐
![FPGA實現雙調<b class='flag-5'>排序</b><b class='flag-5'>算法</b>的探索與實踐](https://file1.elecfans.com/web2/M00/C4/41/wKgZomXyWEeAaEKTAAAJZpFnz-M952.jpg)
想聽聽48和大對數光纜的排序?
C語言實現經典排序算法概覽
![C語言實現經典<b class='flag-5'>排序</b><b class='flag-5'>算法</b>概覽](https://file1.elecfans.com/web2/M00/C0/E7/wKgZomXawtuAf2KKAAAG6CrgNgg468.gif)
LoRaWAN網絡服務器算法--下行路徑選擇算法對比與仿真(下)
![LoRaWAN網絡服務器<b class='flag-5'>算法</b>--下行路徑<b class='flag-5'>選擇</b><b class='flag-5'>算法</b>對比與仿真(下)](https://file.elecfans.com/web2/M00/42/98/poYBAGJ5xUWAAL3PAABCVAeSJ9o570.jpg)
評論