C语言对a数组a[0]~a[n-1] 中存储的n个整数从小到大排序。排序算法是:第一趟通过比较将n个整数中的最小值放在a[0]中,最大值放在a[n-1] 中;第二趟通过比较将n个整数中的次小值放在a[1]中,次大值放在a[n-2] 中;……,以此类推,直到待排序序列为递增序列。
时间: 2024-03-18 11:40:00 浏览: 354
定义数组-c语言课件\\第7章 数组
这是选择排序的算法,可以用以下代码实现:
```c
void selectionSort(int a[], int n) {
int i, j, minIndex, maxIndex, temp;
for (i = 0; i < n / 2; i++) {
minIndex = i;
maxIndex = i;
for (j = i + 1; j < n - i; j++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
if (a[j] > a[maxIndex]) {
maxIndex = j;
}
}
temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
if (maxIndex == i) {
maxIndex = minIndex;
}
temp = a[n - i - 1];
a[n - i - 1] = a[maxIndex];
a[maxIndex] = temp;
}
}
```
这个算法的时间复杂度为O(n^2),虽然不是最优的排序算法,但在某些情况下可能是最好的选择。
阅读全文