C语言数组利用选择排序法,实现5个数从小到大排序
时间: 2023-06-02 21:05:58 浏览: 148
好的,这个问题可以回答。以下是代码实现:
```c
#include <stdio.h>
void selection_sort(int arr[], int n);
int main()
{
int arr[5] = {5, 3, 1, 4, 2}; // 待排序数组
int i;
printf("Before sorting:\n");
for (i=0; i<5; i++)
printf("%d ", arr[i]);
selection_sort(arr, 5); // 排序
printf("\nAfter sorting:\n");
for (i=0; i<5; i++)
printf("%d ", arr[i]);
return 0;
}
void selection_sort(int arr[], int n)
{
int i, j, min_idx, temp;
// One by one move boundary of unsorted subarray
for (i = 0; i < n-1; i++)
{
// Find the minimum element in unsorted array
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// Swap the found minimum element with the first element
temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
```
选择排序的基本思路:
1. 从待排序数组中选择一个最小元素;
2. 将其与数组的第一个元素进行交换;
3. 在剩下的元素中再次选择一个最小元素;
4. 将其与数组的第二个元素进行交换;
5. 重复上述步骤,直到排序完成。
以上是我对你的问题的回答,希望能帮到你。
阅读全文