一直以来,都没有系统去总结排序算法,导致经常会对某些概念和思路很模糊。例如时间复杂度的计算、各种算法的原理和比较。
本系列文章,将尽量和从原理上去分析排序算法的思路和要点,并系统归纳各个算法的优劣。文章定有需要不足和疏漏之处,望及时指正。本人也以此为记录,以便后续学习。
- 1、 算法特性及大O记法 Big O notation
- 2、 冒泡排序 Bubble sort
- 3、 选择排序 Selection sort
- 4、 插入排序 Insertion sort
- 5、 希尔排序 Shell sort
- 6、 归并排序 Merge sort
- 7、 堆排序 Heap sort
- 8、 快速排序 Quick sort
- 9、 计数排序 Counting sort
- 10、 基数排序 Radix sort
- 11、 桶排序 Bucket sort
- 12、 排序算法比较与总结
- 本系列所有算法的实现都是基于javascript。
- 每种算法都有一个独立的文件夹。文件夹下有该算法的思路讲解以及代码实现。
- 每篇文章我会在Node小栈博客仓库中拷贝一份,欢迎大家提issue,指正不当之处。
- 文章中内容大多从github、medium和blog学习总结而来。文中摘取的图片及某些思路,版权归原作者所有。如有不便之处,可联系本人。本人邮箱:gedennis@163.com。
[1] CMU algorithm complexity
[2] brilliant sorting algorithms
[3] big o notation cheat sheet
[4] You need to understand Big O notation, now
[5] 凯耐基梅隆大学数据结构与算法
[6] About the #sorting-algorithms series
[7] 十大经典排序算法
[8] visualgo 排序动画演示