选择排序_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