2025-11-13 11:33:01
快速排序就是先挑个基准数,把比它小的放左边,大的放右边,然后分别再排左边和右边。它最厉害的地方就是平均情况快得飞起,但要是数据刚好排好序了,反而会慢得要命。就像你排队时突然有人插队,处理起来就麻烦了。
为什么快速排序这么矛盾呢?因为它的速度看基准数怎么选。比如1000个数,平均每次分治能砍一半,总共要分10次左右,所以算下来每个数处理1次,总共1000次操作。但如果基准数每次都挑到最大或最小,那每次分治只能砍一个数,要处理999次,这时候就比冒泡排序还慢。实际测试过,随机数据用快速排序平均0.3秒排完,而排好序的数据要3秒,而归并排序不管什么数据都稳稳0.5秒。所以要看数据特点选算法,不能一概而论。
本题链接: