C语言一维数组用选择排序法按从大到小排序
时间: 2024-12-18 13:24:19 浏览: 10
在C语言中,一维数组的选择排序算法通常用于对整数或其他比较类型的元素进行排序。这里是一个简单的例子,展示如何按照从大到小的顺序对整型数组进行选择排序:
```c
#include <stdio.h>
// 选择排序函数,返回值类型为void
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历数组直到倒数第二个元素
int maxIndex = i; // 初始化最大值索引为当前元素
for (int j = i + 1; j < n; j++) { // 比较后面的元素,更新最大值索引
if (arr[j] > arr[maxIndex]) {
maxIndex = j; // 如果找到更大的元素,更新最大值索引
}
}
// 将找到的最大元素与第一个未排序元素交换位置
int temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
// 测试选择排序
int main() {
int array[] = {5, 9, 1, 6, 3}; // 待排序的一维数组
int n = sizeof(array) / sizeof(array[0]);
printf("原始数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", array[i]);
}
selectionSort(array, n);
printf("\n降序排列后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
这个程序首先会找出剩余部分中最大的元素,并将其放置在数组的起始位置。然后继续查找剩余部分中的最大元素,依次移动到已排序部分的末尾,直到整个数组排序完成。
阅读全文