常见算法

十种常见排序算法可以分为两大类:

非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。

线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。

849589-20180402132530342-980121409.png

算法复杂度

849589-20180402133438219-1946132192.png

1、冒泡排序(Bubble Sort)

849589-20171015223238449-2146169197.gif

2、选择排序(Selection Sort)

849589-20171015224719590-1433219824.gif

3、插入排序(Insertion Sort)

849589-20171015225645277-1151100000.gif

4、希尔排序(Shell Sort)

849589-20180331170017421-364506073.gif

5、归并排序(Merge Sort)

849589-20171015230557043-37375010.gif

6、快速排序(Quick Sort)

849589-20171015230936371-1413523412.gif

7、堆排序(Heap Sort)

849589-20171015231308699-356134237.gif

8、计数排序(Counting Sort)

849589-20171015231740840-6968181.gif

9、桶排序(Bucket Sort)

849589-20171015232107090-1920702011.png

本文摘自 十大经典排序算法(动图演示)

你可能感兴趣的:(常见算法)