Python学习笔记第十五天

排序与搜索

排序是将一串数据依照特定顺序进行排列的算法
排序算法的稳定性:有相等键值的元素排序后不会改变排位
冒泡排序 
天平自右向左依次比较两个数据的大小,若左边大则互换位置。重复操作直至排序完成。
最优时间复杂度O(n)
最差时间复杂度O(n^2)
具有稳定性
优化:如果每一次没有改变排序则提前跳出循环
选择排序
利用线性查找找到待排序数据中的最小值将其与序列第一个数据交换
时间复杂度O(n^2)
不稳定
插入排序
从未排序部分最左边元素插入研究排序完成部分的正确位置
希尔排序
插入排序的改进版
设置gap分为子序列进行插入排序
gap=4 -> gap=2 -> gap=1
最优时间复杂度取决于gap的选取
最差时间复杂度O(n^2)
快速排序
随机选择一个基准值,小于基准值的排在左边,大于基准值的排在右边。
再对基准值两侧区域重复上述操作。
最优时间复杂度O(n^2)
最差时间复杂度O(n^2)
归并排序算法
将序列分为长度相同的两个子序列,重复直至每个子序列只有一个数据,然后对子序列进行归并。合并时比较两个子序列的首位大小。

总结 常见排序算法效率比较

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值