快速排序优化方法php

2024-10-25 14:10:05

1、首先随机找出一稍僚敉视个数(通常就拿数组的第一个数就行),把它插入一个位置,使得它左边的数都比它小,右边的数都比它大,这样就将一个数组分成了两个子数组,然后在按照同样的方法把子数组分成更小的子数组,直到不能分解为止。用比较通俗的话:挖坑填数+分而治之。

快速排序优化方法php

3、当待排的元素初始有序时,快排的性能大大地下降。因为此时枢轴划分的子序列严重地不对称(一般选择第一个元素作为枢轴记录),快排退化为冒泡排序。

快速排序优化方法php

5、最后就是对于快排而言,元素的初始序列与排序的趟数和比较次数是有关的。但是,平均情况下,对于内部排序而言,快排的性能是最好。平均时间复杂度为 O(n^2),空间复杂度为O(logn)。

快速排序优化方法php
猜你喜欢