排序算法
冒泡排序
https://www.runoob.com/w3cnote/bubble-sort.html
选择排序
https://www.runoob.com/w3cnote/selection-sort.html
插入排序
https://www.runoob.com/w3cnote/insertion-sort.html
希尔排序
https://www.runoob.com/w3cnote/shell-sort.html
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
- 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;
- 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;
希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。
归并排序
https://www.runoob.com/w3cnote/merge-sort.html
归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:
- 自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);
- 自下而上的迭代;
快速排序
https://www.runoob.com/w3cnote/quick-sort-2.html
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。
快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。
堆排序
https://www.runoob.com/w3cnote/heap-sort.html
计数排序
https://www.runoob.com/w3cnote/counting-sort.html
...