基础排序算法

排序算法:让数据有序.

选择排序法

思路:
先把最小的元素拿出来
剩下的,把最小的拿出来
一直循环遍历完数据完成排序,每次选择还没处理的元素里最小的元素

选择排序法的好处:不占用额外的空间(可完成原地排序)
特征:当前数据以前的数据都已经是排好序了的,当前数据(包括当前)以后的数据都是未进行排序的.所以当前数据以前已经排好序的数据叫做"循环不变量"
‘‘作比较的数据必须是可比较的’’

插入排序法

思路:
选择一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕.

步骤: 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

Tips:1.与选择排序法相比,插入排序法在进行的时候剩下的数据都是不定的,可能大于或小于已经前面已经排好序的数据,但是使用选择排序法进行排序时剩下的数据都应该大于或者小于已经排好序的数据.因为插入排序法每次处理的元素是与前面已经处理的元素作比较,而选择排序法是遍历未处理的元素与已经处理好的元素作比较.
2.选择排序法处理好的数据就是最终的数据,而插入排序法处理好的数据只是暂时的数据.因为选择排序法在进行排序的时候是将预处理数据与全部的数据进行比较,但插入排序法在进行排序的时候是讲预处理的数据与前面已经处理好的数据进行比较.
3.插入排序法的小优化(该操作并不能减小时间复杂度):在预处理数据与已经处理好的数据进行比较时,我们可以先不进行数据的交换,而是将预处理的数据与前面处理好的数据进行比较当预处理数据与所比较的数据符合条件时先不进行数据的交换(‘‘数据交换需要三步’’)先将数据赋值(“赋值操作只需要一步”)到预处理数据的位置再继续进行预处理数据与前面数据的比较,每当遇到符合条件的数据时进行赋值操作来替代数据交换.当遇到不符合条件的数据再进行数据交换操作.
4.当碰到有序数组时,利用插入排序法插入排序的时间复杂度是O(n)级别.整体而言插入排序的复杂度依然是O(n2),选择排序法的复杂度永远是O(n2).

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值