用c语言选择法对10个整数排序
时间: 2024-12-25 10:26:14 浏览: 9
在C语言中,选择排序是一种简单直观的排序算法,尤其适用于小型数据集。对10个整数进行选择排序的过程可以分为以下几个步骤:
1. **遍历数组**:从第一个元素开始,每次从未排序的部分选出最小的元素并将其放到已排序部分的末尾。
2. **找到最小值**:对于剩余未排序的第一个元素,比较它与其他未排序元素的大小,找出最小的一个。
3. **交换位置**:将找到的最小值与当前位置的元素交换,此时已有一个元素处于正确的位置。
4. **重复过程**:继续上述步骤,每次迭代都减少一次未排序元素的数量,直到所有元素都被放置到正确的位置,整个数组就排好序了。
以下是C语言实现选择排序的一个简单示例:
```c
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n - 1; i++) {
// 找到剩余部分的最小元素索引
min_idx = i;
for (j = i + 1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// 将最小元素与当前位置交换
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int arr[] = {5, 3, 8, 6, 1, 9, 2, 7, 4};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组: ");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
selectionSort(arr, n);
printf("\n排序后的数组: ");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
运行这个程序,会得到一个按升序排列的数组。需要注意的是,虽然选择排序的原理相对容易理解,但它的平均和最坏时间复杂度都是O(n^2),在处理大量数据时效率较低。
阅读全文