GitHubc++
选择排序的核心思想是对于 N 个元素进行排序时,对其进行 K = (N - 1) 次排序,每次排序从后(N + 1 - K)个数值中选择最小的元素与以 (K - 1) 为下标的元素互换,最后获得一个升序列表.git
选择排序与冒泡排序有一些类似,本质上都是逐次排序.
But
选择排序在时间复杂度上要小于冒泡排序,主要表如今每次排序时不须要逐个互换元素.github
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; } }