選擇排序_c++


選擇排序_c++


GitHub

文解

選擇排序的核心思想是對於 N 個元素進行排序時,對其進行 K = (N - 1) 次排序,每次排序從后(N + 1 - K)個數值中選擇最小的元素與以 (K - 1) 為下標的元素互換,最后得到一個升序列表.

選擇排序與冒泡排序有一些相似,本質上都是逐次排序.
But
選擇排序在時間復雜度上要小於冒泡排序,主要表現在每次排序時不需要逐個互換元素.

圖解

選擇排序圖解

代碼

void selectArray(short * pArray, short count) {
    
    short temp; //存儲每次選擇元素的數值
    short k; //存儲所選擇元素的小標
    
    for (short i = 0; i < count; i ++) {
        temp = pArray[i];
        k = i;
        for (short j = i; j < count; j ++) {
            if (temp > pArray[j]) {
                temp = pArray[j];
                k = j;
            }
        }
        pArray[k] = pArray[i];
        pArray[i] = temp;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM