C语言对a[0]至a[n-1]中存储的n个整数从小到大排序,排序算法是:第一趟通过比较将n个整数中的最小值放在a[0]中,最大值放在a[n-1]中,第二趟通过比较将n个整数中的次小值放在a[1]中,次
时间: 2024-09-24 16:17:33 浏览: 90
在C语言中,你可以使用选择排序(Selection Sort)算法来实现这个功能。选择排序的基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,直到所有元素都有序。以下是选择排序的具体步骤:
1. 首先,假设数组名为`a[]`,遍历整个数组(即`for (int i = 0; i < n - 1; i++)`)。
2. 在内层循环中,找到下标`i`到`n-1`范围内的最小值,将其索引记为`min_index`,通过`if`条件判断更新`min_index`。
```c
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[min_index]) {
min_index = j;
}
}
```
3. 然后,将`a[min_index]`与`a[i]`交换,完成一轮选择。
4. 继续外层循环,重复上述过程,直至整个数组有序。
完整的代码示例:
```c
#include <stdio.h>
void selectionSort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[min_index]) {
min_index = j;
}
}
// 交换元素
int temp = a[i];
a[i] = a[min_index];
a[min_index] = temp;
}
}
int main() {
int a[] = { ... }; // 输入需要排序的整数
int n = sizeof(a) / sizeof(a[0]);
selectionSort(a, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
阅读全文