排序:
冒泡排序,快速排序,选择排序,归并排序,插入排序,堆排序,希尔排序,基数排序
1.冒泡排序:
前后两两进行对比交换,每走一轮就会让一个数据变得有序
2.基数排序:
基本思想:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
空间复杂度:
最坏情况下:O(m*n) m代表“桶”的个数,一般是10。
时间复杂度:O(m+n)
m是保存桶的元素个数数组占的空间,n是保存桶的二维数组占的空间。
3.简单选择排序
在待排序数组中选出最小的(或最大)的与第一个位置的数据交换 然后在剩下的待排序数组中找出最小(或最大)的与第二个位置的数据交换,以此类推,直到第n-1个元素。
4.快速排序
快速排序(Quick Sort)是从 冒泡排序算法 演变而来的,实际上是在 冒泡排序 基础上的递归分治法。 快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。
时间复杂度:O(nlogn)