Python里面几种排序算法的比较,sorted的底层实现,虽然我们知道sorted的实现方式,但是
算法与数据结构基础 原文链接: http://note.youdao.com/noteshare?id=7b9757930ce3cc9e0a5e61e4d0aa9ea2&sub=2726FFA02ADE4E74A302D8DA7646FB46 查找算法: 二分查找法: 简介 :二分查找法又被称为折半查找法,用于预排序的查找问题 过程 : 如果在列表a中查找元素t,先将列表a中间位置的项与查找关键字t比较,如果两者相等,则成功。 否则,将表分为前后两个子表 如果中间位置大于t,则进一步查找前一子表,否则,查找后一子表 重复上述过程 优劣 : 时间复杂度为O(log~2~N),比较快 缺点就是必须是有序列表 排序算法: 冒泡排序 简介 :两两比较大小,如果不满足升序关系,则交换 过程 :略 优劣: : 时间复杂度为O(N^2^),速度较慢 稳定 选择排序 简介 :找出最小值,然后放入一个新的列表中 过程 :略 优劣: : 时间复杂度为O(N^2^),速度较慢 稳定 插入排序法 简介 :依次检查需要排序的列表,每次取出一个元素放入另一个排好序的列表中的适当位置。 过程 :略 优劣: : 时间复杂度为O(N^2^) 速度不稳定,最佳情况为线性增长,最差情况为N^2^,所以速度实际上比前两种快 归并排序 简介 :分而制之的思想 过程 : 将包含N个元素的列表分为两个含N/2元素的子列表.