用选择排序法对数组a的元素从小到大排序。例如,输入2 5 4 1 6 2 7 3 2 9 4,则应输出1 2 2 2 3 4 5 6 7 9。代码并详细解释
时间: 2023-04-03 17:04:09 浏览: 86
我可以回答这个问题。选择排序法是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小的一个,放到已排序的元素的末尾。具体实现如下:
#include <stdio.h>
void selection_sort(int a[], int n) {
int i, j, min, temp;
for (i = 0; i < n - 1; i++) {
min = i;
for (j = i + 1; j < n; j++) {
if (a[j] < a[min]) {
min = j;
}
}
if (min != i) {
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
int main() {
int a[10] = {2, 5, 4, 1, 6, 2, 7, 3, 2, 9};
int i;
selection_sort(a, 10);
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
在这个程序中,我们定义了一个 selection_sort 函数,它接受一个整数数组 a 和数组的长度 n 作为参数。函数中使用了两个循环来实现选择排序的过程。外层循环从数组的第一个元素开始,一直到倒数第二个元素。内层循环从外层循环的下一个元素开始,一直到数组的最后一个元素。在内层循环中,我们找到最小的元素,并记录它的下标 min。如果 min 不等于外层循环的下标 i,说明找到了一个更小的元素,我们就将它和 a[i] 交换位置。最后,我们输出排序后的数组。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)