选择法排序:输入一个正整数n(1<n≤10),再输入n个整数,将它们从大到小 排序后输出。试用c语言编写相应程序
时间: 2024-12-23 12:13:17 浏览: 24
选择法排序是一种简单直观的排序算法,它的工作原理每次从未排序的数组中选出最大(或最小)的一个元素,放到已排序序列的末尾。以下是使用 C 语言实现的选择法排序示例:
```c
#include <stdio.h>
// 函数声明
void selectionSort(int arr[], int n);
int main() {
int n, i, j, temp;
// 输入数组长度和元素
printf("请输入正整数n(1<n<=10): ");
scanf("%d", &n);
if (n < 2) {
printf("输入错误,需要至少两个元素。\n");
return 1;
}
int arr[n];
printf("请输入%d个整数: ", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 对数组进行选择排序
selectionSort(arr, n);
// 输出排序后的数组
printf("排序后的数组从大到小:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
// 选择法排序函数
void selectionSort(int arr[], int n) {
for (i = 0; i < n - 1; i++) { // 遍历所有未排序的元素
int maxIndex = i; // 初始化最大值索引为当前元素
// 查找剩余部分的最大值并更新索引
for (j = i + 1; j < n; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
// 将找到的最大值交换到已排序部分的末尾
if (maxIndex != i) {
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
}
```
当你运行这个程序时,它会首先提示你输入数字的数量和每个元素,然后按照选择法排序算法对输入的数字进行排序,并输出结果。
阅读全文