)对a数组a[0]~a[n-1]中存储的n个整数从小到大排序。排序算法是:第一趟通过比较将n个整数中的最小值放在a[0]中,最大值放在a[n-1]中;第二趟通过比较将n个整数中的次小值放在a[1]中,C语言
时间: 2024-06-13 11:08:15 浏览: 87
定义数组-c语言课件\\第7章 数组
以下是C语言实现对a数组a~a[n-1]中存储的n个整数从小到大排序的代码,排序算法是:第一趟通过比较将n个整数中的最小值放在a中,最大值放在a[n-1]中;第二趟通过比较将n个整数中的次小值放在a中:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void select(int a[], int begin, int end) {
int i;
// 初始化时最小值位置为起始位置
int minPos = begin;
// 初始化时最小值为待排序数组的第一个元素
int min = a[begin];
// 寻找最小值
for(i = begin; i <= end; i++) {
if(a[i] < min) {
minPos = i;
min = a[i];
}
}
// 将最小值元素与待排序数组头元素进行交换
swap(&a[begin], &a[minPos]);
}
void sort(int a[], int n) {
int i;
for(i = 0; i < n; i++) {
select(a, i, n - 1);
}
}
int main() {
int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(a) / sizeof(int);
sort(a, n);
int i;
for(i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
阅读全文