C++ 實現選擇排序算法
思路
選擇排序
- 選擇排序(升序) 就是 從一組數字 選出 一個最小的元素 放在 第一個位置
- 之後在 剩下 的 元素中, 在選擇一個 最小 的 位置 放入 第二位置
- 最後只剩下 一個元素, 整個排序過程完成.
#include <iostream>
using namespace std;
void selectSort(int *arr, int len) {
for (int i = 0; i < len; i++) {
// 尋找[i, n)區間裏的最小值
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(arr[i], arr[minIndex]);
}
}
}
void printArray(int *arr, int len) {
for (int i = 0; i < len; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int array[] = {1, 34, 6, 21, 98, 31, 7, 4, 36, 47, 67, 39, 45, 57, 37, 25, 2};
int len = sizeof(array) / sizeof(*array);
printArray(array, len);
selectSort(array, len);
printArray(array, len);
return 0;
}
結果如下: