c语言用选择法对一个数组进行排序
时间: 2023-06-10 20:04:07 浏览: 93
C语言用分治法实现数组归并排序算法实现
好的,我可以为您提供一些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[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
int main()
{
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
printf("排序后的数组:\n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
以上代码实现了选择排序法,其中用到两个循环:一个循环遍历数组中的所有元素,另一个循环找到未排序部分的最小元素。在每次迭代中,将最小值与未排序部分的第一个元素交换。此过程将重复n次,因为每次迭代都会将未排序部分的最小值放到正确的位置上。最后,输出排序后的数组。
希望这能回答您的问题!
阅读全文