随笔分类 - 算法
摘要:两种nlogn时间复杂度的排序算法,一个归并排序,一个快速排序。归并排序和快速排序都采用了分治的思想来解决排序的问题,将大问题转化为小问题进行处理,归并排序是由下到上,先划分子问题到不能再划分的地步,再进行合并操作,而快速排序是先分区排序,将分区点放在最终排好序的位置,然后对分区点两边的子数组再进行分区排序处理,所以快排是由上到下进行处理的。归并排序和原始数组的有序程度无关,时间复杂度都是nlogn,但是空间复杂度为O(n),而快速排序大部分情况下的时间复杂度可以做到nlogn,但也有极端情况退化为n^2,另外归并排序是稳定的排序算法,但快排不是,只是快排可以原地排序,空间复杂度为O(1),所以实际使用过程中,还是快排用的比较广泛。
阅读全文
摘要:冒泡排序、插入排序和选择排序介绍,各有什么优缺点,这三个排序算法最坏时间复杂度都达到了n^2,根据排序效率,是否稳定排序等方面来考虑,优先选择插入排序。
阅读全文