C言語で簡易選択ソートアルゴリズムを実装する方法
単純選択ソートは簡単な直感的なソートアルゴリズムで、基本的な考え方は、ソートする対象配列の先頭から順次、後続の要素と比較して最小の要素を探し、現在の位置の要素と交換し、この処理を配列すべてが有序になるまで繰り返すことです。
これは、C 言語で単純な選択ソートアルゴリズムを実装するためのサンプルコードです。
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
for(i = 0; i < n-1; i++) {
minIndex = i; // 假设当前位置是最小元素的下标
for(j = i+1; j < n; j++) {
// 找到更小的元素,更新最小元素的下标
if(arr[j] < arr[minIndex])
minIndex = j;
}
// 将最小元素与当前位置元素交换
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
selectionSort(arr, n);
printf("排序后的数组:\n");
for(int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
上記のコードを実行すると、出力結果は次のようになります。
排序后的数组:
11 12 22 25 64
こうして単純選択ソートアルゴリズムが実現する。