【C语言排序方法(二)】选择排序

本文介绍了选择排序的基本思想和图例说明,详细解释了选择排序的过程,并提供了C语言的算法实现。选择排序通过不断遍历数组,找到最小元素并交换到正确位置,逐步完成排序。
摘要由CSDN通过智能技术生成

基本思想及图例说明

  • 冒泡排序是通过不断地将相邻的两个数进行比较,来达到排序的目的。
  • 选择排序则是不断地遍历所有元素,找到最小(最大)的放在首位。

下面看图例:

初始序列: 5 2 4 6 1 3

第一次遍历找到最小的数 1 ,将他和首位元素 5 交换。
第一趟:1 2 4 6 5 3

第二次遍历除首位外的数,将最小的数 2 和第二位元素交换,但是 2 已经在第二位所以位置不变。
第二趟:1 2 4 6 5 3

第三次遍历除第一位和第二位的元素,将最小的数 3 和第三位元素交换。
第三趟:1 2 3 6 5 4

以此类推……

算法实现

对于具有 N 个元素的数组 arr[ N ]:

第 1 趟,在待排序数组元素 arr[ 1 ] ~ arr[ N ] 中选出最小的元素,将它与 arr[ 1 ] 交换;

第 2 趟,在待排序数组元素 arr[ 2 ] ~ arr[ N ] 中选出最小的元素,将它与 arr[ 2 ] 交换;

以此类推,第 i 趟在待排序数组元素 arr[ i ] ~ arr[ N ]中选出最小的元素,将它与 arr[ i ] 交换,使有序序列不断增长直到全部排序完毕。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值