用C语言编程实现对数组的选择排序并输出结果
时间: 2024-10-10 09:16:46 浏览: 64
c语言编程题之数组操作删除排序数组中的重复项.zip
选择排序(Selection Sort)是一种简单的排序算法,通过多次遍历数组,每次找出最小(或最大)的元素,并将其放到已排序部分的末尾。下面是使用C语言实现选择排序的例子:
```c
#include <stdio.h>
// 定义交换两个元素的函数
void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}
// 选择排序函数
void selectionSort(int arr[], int n) {
// 遍历所有数组元素
for (int i = 0; i < n - 1; i++) {
// 找到剩余部分的最小元素
int min_idx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx])
min_idx = j;
}
// 如果找到的最小元素不是当前位置的元素,则交换
if (min_idx != i)
swap(&arr[min_idx], &arr[i]);
}
}
// 主函数,测试排序功能
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: \n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
selectionSort(arr, n);
printf("\nSorted array: \n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
这个程序首先定义了一个名为`swap`的辅助函数用于交换数组元素。然后,`selectionSort`函数遍历数组,每次都找到剩余部分的最小元素,将其放置到已排序部分的最右边。主函数中创建了一个测试数组,调用`selectionSort`并打印排序后的数组。
阅读全文