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; } }