c语言选择排序代码:
时间: 2023-08-11 21:20:18 浏览: 46
以下是C语言的选择排序代码:
```c
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
```
这段代码实现了选择排序算法,它的时间复杂度为O(n^2)。
相关问题
c语言选择排序法代码
以下是C语言选择排序法的代码:
```c
#include <stdio.h>
int main() {
int a[10] = {6, 1, 4, 5, 7, 8, 9, 2, 3, 10};
int i, j, flag, exchange;
for (i = 0; i < 10; i++) {
flag = i; //记录下标
for (j = i + 1; j < 10; j++) {
if (a[flag] >= a[j]) //flag和j下标比较,让flag指向最小的数
{
flag = j;
}
}
if (flag != i) //下标不同时(开始交换)
{
exchange = a[flag];
a[flag] = a[i];
a[i] = exchange;
}
}
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
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);
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`函数对其进行排序。最后,我们打印出原始数组和排序后的数组。
选择排序的基本思想是,在未排序的元素中找到最小(或最大)元素,将其与第一个元素交换,然后再在剩余的未排序元素中找到最小(或最大)元素,将其与第二个元素交换,以此类推,直到整个数组排序完成。这个过程可以通过嵌套循环来实现。在每次内部循环中,我们记录当前最小元素的索引,并将其与当前外部循环的索引进行交换,以确保它被移动到正确的位置。