排序算法

什么是算法

排序算法_第1张图片
什么是算法

书籍推荐

《数据结构与算法分析》


排序算法_第2张图片
数据结构与算法分析
  • 表、栈和队列
  • 散列(hash)
  • 优先队列(堆)
  • 排序

定义 问题

排序算法_第3张图片
问题

遇到思路障碍怎么办?

1.将抽象问题转换为具体的问题
2.将没见过的问题转换为见过的问题

冒泡排序

排序算法_第4张图片
冒泡排序

排序算法_第5张图片
解析

选择排序

排序算法_第6张图片
选择排序

说明:这样做其实就是每次在没排的这一堆里面找到最小的那个,然后推到前面去。

总结冒泡和选择排序的时间损耗是一样的

插入排序

排序算法_第7张图片
插入排序

归并排序

可能会有堆栈溢出

快速排序

自私排序:比我矮的站我前面,比我高的站我后面。

随机快排

  • 比较次数的对比
    冒泡:19 18 17 ...
    快排: 17 9 9 3 3 3...对半

  • 程序员3大难题
    1.变量命名
    2.循环边界
    3.缓存失效

桶排法

排序算法_第8张图片
桶排法

排序算法_第9张图片
桶排法

基数排序

排序算法_第10张图片
基数排序
  • 时间复杂度
    n^2
    n*logn
    n + max

你可能感兴趣的:(排序算法)