首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

2.选择排序法

#include

int main() {

  int arr[10] = ;

  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;

}

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

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

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

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230312A04WDA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券