選択の並べ替え:
時間の複雑さ:O(n ^ 2)
空間の複雑さ:O(1)
パフォーマンステスト:
バブルの並べ替えと比較:
10,000個の乱数で並べ替え:
选择排序 : 0.109496 s
冒泡排序优化版 : 0.432141 s
10kのほぼ順序付けられた数値のソート:
选择排序 : 0.112428 s
冒泡排序优化版 : 0.018859 s
基本的な考え方:
並べ替える間隔から最小のものを選択し、既に順序付けられている間隔の後に配置します。
void selectSort(int arr[], int n) {
for (int i = 0; i < n; ++i) {
int min_index = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
swap(arr[i], arr[min_index]);
}
}
EOF