まず、選択ソートの基本的なアイデアは、リスト内の最小値(または最大値)を見つけて先頭に配置することです。次に、残りの要素に対して同じ手順を繰り返します。これにより、リスト全体がソートされます。
以下に、C++での選択ソートの実装例を示します。
#include <iostream>
void selectionSort(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < size; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
std::swap(arr[i], arr[minIndex]);
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int size = sizeof(arr) / sizeof(arr[0]);
selectionSort(arr, size);
std::cout << "Sorted array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
このコードでは、selectionSort
関数を定義して選択ソートを実装しています。配列の要素を昇順にソートする例として、{64, 25, 12, 22, 11}の配列を使用しています。
ソート後の配列は次のようになります: 11 12 22 25 64
以上が、C++で選択ソートを実装する方法と簡単なコード例です。選択ソートはシンプルなアルゴリズムですが、大規模なデータセットでは効率が低下する可能性があるため、より高速なソートアルゴリズムも検討することをおすすめします。