直接选择排序

今天给大家介绍一个排序算法——选择排序
选择排序的基本思想是:每一趟从待排序记录中选出关键字最小的记录,按顺序放到已排好序的子序列中,直到全部记录排序完毕。选择排序有两种:直接选择排序和堆排序。只给大家讲解选择排序。
直接选择排序的基本思想是:假设待排序序列有n个记录(R1,R2,……,Rn),先从n个记录中选出关键字最小的记录Rk,将该记录与第一个记录交换位置,完成第一趟排序;然后从剩下的n-1个记录中再找出一个关键字最小的记录与第二个记录交换位置,依次反复,对n个记录经过n-1躺排序即可得到有序序列。
在这里插入图片描述

r是待排序的数列,n是n个长度,i是我们已排好序的我们要选择的那个下标。
我们首先把i给过k。
我们可以看到这个循坏j是从i的下一个开始不管你排序到什么位置,j都是没排好序的。
J从下一个位置开始然后一直到最后一个元素,如果后面这个元素比r[k]要小,这时就说明不再指向最小的。K总是要等于当前最小数的下标。如果r[k]一旦比r[j]要大,马上修改k,修改k为小的数的下标。所以保证了k都是当前最小关键字的记录位置。如果k和i不相等,我们就进行一个交换,这个时候就能找到他们
意思是直接选择到相应的排序位置,这就是直接选择排序。
一共要进行n-1趟。
在这里插入图片描述
直接排序排序数不能太多的,否则就比较复杂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值