c语言10个整数从小到大排序用选择法
时间: 2024-11-04 16:10:17 浏览: 39
C语言实现3个数从小到大排序/输出的方法示例
在 C 语言中,使用选择排序算法对 10 个整数从小到大进行排序,可以按照以下步骤进行:
1. 初始化:首先,我们需要一个包含 10 个整数的一维数组,并设置一个标志,表示未找到最小元素的位置(假设数组名为 `nums`,索引从 0 开始)。
2. 遍历数组:每次遍历数组,查找当前未排序部分内的最小元素。通过两层循环完成这个过程,外层循环控制未排序部分的起点,内层循环比较每个元素找到最小值。
3. 找到最小元素:在内层循环中,如果找到比已知最小值更小的元素,就更新最小值及其位置。
4. 交换元素:将找到的最小元素与未排序部分的第一个元素交换,这一步完成了这一轮的“选择”操作。
5. 更新范围:外层循环结束后,未排序部分会向前移动一位,因为已经将最小值放到了正确的位置。
6. 重复直到有序:继续上述步骤,直到整个数组都被遍历并排序完毕。
以下是简单的 C 代码示例:
```c
#include <stdio.h>
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 主循环
int min_index = i; // 当前未排序部分的最小元素下标
for (int j = i + 1; j < n; j++) { // 内层循环寻找最小值
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 交换找到的最小值
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
// 测试函数
int main() {
int nums[10] = {5, 3, 8, 1, 9, 2, 7, 4, 6, 0};
int n = sizeof(nums) / sizeof(nums[0]);
printf("Before sorting:\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
selection_sort(nums, n);
printf("\nAfter sorting (ascending):\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
当你运行这个程序,它会打印出排序后的结果。
阅读全文