二、交换排序(冒泡、快排比较常见,简单分析即可)
1.冒泡排序
-
基本思想
从后往前两两比较相邻元素的值,若为逆序则交换他们,直到序列比较完,我们成为一趟冒泡。 -
效率分析
空间效率:O(1)
时间效率:最坏O(n·n)
2.快速排序
- 基本思想
分治法,人去一个元素作为基准,通过一趟排序将表划分为两个独立的部分,使得左侧(如果是从小到大排序的话)的小于基准值,右侧的大于基准值,这个工程称为一趟快速排序,之后分别递归的对两个字表进行快排。
快排的阶段性排序结果特点是,第i趟完成时,会有i个以上的数出现在它最终将要出现的位置,即它的左边的数都比它小,它的右边的数都比它大。 用来做给定几趟排序,让选哪个是快排或哪个不是。 - 效率分析
空间:最坏:O(n),最好:O(log2n)
时间:最坏:O(n·n)
稳定性:不稳定
注:快排中不会产生有序子序列,但每一趟排序之后会将一个元素(基准元素)放到其最终的位置上。
不懂快排的小伙伴们,安利一个博客,动手画一遍就明白了。
快排