如何用C语言编写一个函数,用于接收一个包含10个整数的数组,并采用选择排序算法对其进行排序?
时间: 2024-11-06 08:23:48 浏览: 57
在C语言中,你可以创建一个名为`selection_sort`的函数,通过两层循环遍历来完成选择排序。这里是一个简单的实现示例:
```c
#include <stdio.h>
void selection_sort(int arr[], int size) {
int i, j, min_idx;
// 遍历数组大小
for (i = 0; i < size - 1; i++) {
// 认为当前元素是最小的
min_idx = i;
// 在剩余未排序部分寻找最小元素
for (j = i + 1; j < size; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 如果找到更小的元素,则交换它们的位置
if (min_idx != i) {
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
}
// 测试函数
int main() {
int arr[10] = {5, 2, 8, 1, 9, 3, 7, 6, 4, 0};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
selection_sort(arr, size);
printf("After sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
阅读全文