每天一道c语言编程题,第二十三题,对数进行排序,选择排序法

每天一道c语言编程题,第二十三题,对数进行排序,选择排序法

编码文章call10242025-09-17 20:52:352A+A-

用c语言对10个数进行排序

2.选择排序法

#include <stdio.h>

int main() {

int arr[10] = {5, 6, 8, 3, 4, 9, 7, 2, 6, 1};

int i, j, min, temp;

for (i = 0; i < 9; i++) {

min = i;

for (j = i+1; j < 10; j++) {

if (arr[j] < arr[min]) {

min = j;

}

}

if (min != i) {

temp = arr[i];

arr[i] = arr[min];

arr[min] = temp;

}

}

printf("排序后的数组:\n");

for (i = 0; i < 10; i++) {

printf("%d ", arr[i]);

}

return 0;

}

选择排序算法是一种简单但有效的排序算法,它的基本思想是在未排序序列中选择最小的元素,并将其放在已排序序列的末尾。通过不断地选择最小元素,可以将整个数组排成有序序列。

  1. 从数组的第一个元素开始,将其作为已排序序列的唯一元素。

  2. 在未排序序列中找到最小元素的下标。

  3. 将未排序序列中最小元素与已排序序列的末尾进行交换,即将最小元素放在已排序序列的末尾。

  4. 增加已排序序列的长度,将已排序序列的末尾指针向后移动一位。

  5. 重复步骤 2-4,直到已排序序列的末尾指针达到数组的末尾。

在选择排序算法中,每次选择最小元素的操作都需要遍历未排序序列,因此它的时间复杂度为 O(n^2),其中 n 是数组的长度。虽然选择排序算法的时间复杂度不如快速排序或归并排序等高效的排序算法,但它的实现简单易懂,不需要额外的空间复杂度,因此在某些特定的场景下,仍然有其应用价值。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4