快速排序的时间复杂度

如题所述

快速排序的时间主要耗费在划分操作上,对长度为n的区间进行划分,共需n-1次关键字的比较,时间复杂度为O(n)。


快速排序是基于“分治法”原理实现,所谓分治法就是不断地将原数组序列按照一定规律进行拆分,拆分后各自实现排序直到拆分到序列只剩下一个关键字为止。快速排序首先选取一个关键字为标志位(关键字的选取影响排序效率)。


然后将序列中小于标志位的关键字移动至标志位左侧,大于标志位的关键字移动至右侧。一趟比较完成后,整个序列以选取的标志位为界,左侧均小于标志位,右侧均大于关键字。


但左右两侧内部并不是有序的(左右两侧关键字个数也不一定相同)。进而继续将左右两侧分别再以这种方式进行排序,直到将序列拆分的剩余一个关键字为止,整个序列即变成有序。


快排时间复杂度作用:


为了让无序的数据组合变成有序的数据组合。 有序的数据组合最大的优势是在于当你进行数据定位和采用时, 会非常方便,因为这个数据是有序的 从而在代码设计的时候会让你避免很多不必要的麻烦。


因为无序数据你在进行推断数据前后关系的时候会显示很繁琐 快速排序是排序中的一种,它在最差情况下和别的排序相差不大 而在最优,一般情况下,会比一般的排序方法更节省时间。

温馨提示:答案为网友推荐,仅供参考
相似回答