【发布时间】:2022-11-17 21:55:10
【问题描述】:
我正在编写一个 c 程序,我需要在其中制作不同大小(512 到 16384 个元素之间)的数组,这些数组始终生成快速排序的最佳情况。我知道枢轴应该总是在中间,但是在这种情况下,我该如何创建一个创建数字数组的算法呢?在我的分区函数中,我选择最后一个元素作为基准。
我试图根据我在another thread 中找到的回复创建一个函数,但是我对这些数组进行排序所获得的运行时间比我从平均情况下获得的运行时间要长。
【问题讨论】:
-
这取决于分区函数的细节。基本上,您需要安排枢轴始终是中间值项。但是每次通过都会打乱项目,因此您需要向后工作以找出下一个枢轴最初来自哪里。
标签: c algorithm sorting time-complexity quicksort