c语言选择排序的代码
时间: 2023-12-26 22:28:38 浏览: 20
当然可以!下面是一个使用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);
int i;
printf("Original array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
selectionSort(arr, n);
printf("Sorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码定义了一个名为`selectionSort`的函数,它接受一个整数数组和数组的大小作为参数。该函数使用选择排序算法对数组进行排序。在主函数中,我们定义了一个示例数组,并调用`selectionSort`函数对其进行排序。最后,我们打印出原始数组和排序后的数组。
选择排序的基本思想是,在未排序的元素中找到最小(或最大)元素,将其与第一个元素交换,然后再在剩余的未排序元素中找到最小(或最大)元素,将其与第二个元素交换,以此类推,直到整个数组排序完成。这个过程可以通过嵌套循环来实现。在每次内部循环中,我们记录当前最小元素的索引,并将其与当前外部循环的索引进行交换,以确保它被移动到正确的位置。