C言語で、選択ソート法を使う方法はどうですか?
C言語では、配列をソートするために選択ソートアルゴリズムを使用することができます。この選択ソートの基本的な考え方は、未ソート部分から毎回最小(または最大)の要素を選んで、それをソート済み部分の末尾に配置することです。
以下是使用選択ソートアルゴリズムで整数配列をソートする例示コードです。
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx, temp;
// 遍历整个数组
for (i = 0; i < n – 1; i++) {
// 找到未排序部分的最小元素位置
min_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx])
min_idx = j;
}
// 将最小元素与当前位置交换
temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf(“原始数组:”);
for (i = 0; i < n; i++)
printf(“%d “, arr[i]);
selectionSort(arr, n);
printf(“\n排序后的数组:”);
for (i = 0; i < n; i++)
printf(“%d “, arr[i]);
return 0;
}
上記のコードでは、`selectionSort()` 関数が選択ソートアルゴリズムを実装するために使用されています。`main()` 関数では、整数配列 `arr` が作成され、その配列の長さ `n` が計算されます。その後、元の配列が出力され、`selectionSort()` 関数が呼び出され、配列がソートされます。最後に、ソートされた配列が出力されます。
上記のコードは出力します:
原始数组:64 25 12 22 11
排序后的数组:11 12 22 25 64
これは、C言語で配列を並べ替えるために選択ソートアルゴリズムを使用する例です。