[データ構造とアルゴリズム]選択ソート

選択の並べ替え:
時間の複雑さ: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

98件のオリジナル記事が公開されました 91件の賞賛 40,000回以上の閲覧

おすすめ

転載: blog.csdn.net/Hanoi_ahoj/article/details/105473481