W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
「選擇排序 selection sort」的工作原理非常直接:開啟一個循環(huán),每輪從未排序區(qū)間選擇最小的元素,將其放到已排序區(qū)間的末尾。
設數(shù)組的長度為 n ,選擇排序的算法流程如圖 11-2 所示。
圖 11-2 選擇排序步驟
在代碼中,我們用
selection_sort.cpp
/* 選擇排序 */
void selectionSort(vector<int> &nums) {
int n = nums.size();
// 外循環(huán):未排序區(qū)間為 [i, n-1]
for (int i = 0; i < n - 1; i++) {
// 內(nèi)循環(huán):找到未排序區(qū)間內(nèi)的最小元素
int k = i;
for (int j = i + 1; j < n; j++) {
if (nums[j] < nums[k])
k = j; // 記錄最小元素的索引
}
// 將該最小元素與未排序區(qū)間的首個元素交換
swap(nums[i], nums[k]);
}
}
圖 11-3 選擇排序非穩(wěn)定示例
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: