排序 是将一组乱的数据按一定准则排好顺序。
一般按照时间复杂度大概分为三类:
一: O(n^2) 冒泡排序,选择排序,插入排序,希尔排序(性能优于O(n^2),差于O(nlog));
二: O(nlogn) 快速排序,归并排序,堆排序;
三: O(n) 基数排序,桶排序,计数排序。
根据其稳定性:稳定排序和不稳定排序。
稳定性排序:值相同的两个元素排序完,它两的相对位置不变。如下图:黄色的 6 和 白色的 6 值一样排完序后,黄色 6 仍在白色 6 的前面则是稳定排序。
稳定排序:冒泡排序,插入排序,归并排序,计数排序,桶排序,基数排序;
不稳定排序:选择排序,希尔排序,快速排序,堆排序;
1.冒泡排序
定义:反复的走访要排序的数列,一次比较两个元素,如果他们