【发布时间】:2020-01-01 17:21:45
【问题描述】:
我必须在 c 程序中为 BEST CASE INPUT 找到快速排序的时间复杂度,并且我选择了数组的最后一个元素作为枢轴。 现在我知道最好的情况下我必须输入哪些输入值,即,将第一个中间元素保留在最后一个位置(枢轴)&下一个枢轴应该是下一个中间元素。 但我必须生成这种非常大的最佳案例输入数组,如 1000、5000、100000 ..,以便快速排序。 我可以编码,但任何人都可以帮助我了解如何使用 c 编程生成那种最佳情况输入数组,以便使用最后一个枢轴进行快速排序。 我只需要诸如如何使用 c 编程生成这种数组的逻辑。
【问题讨论】:
-
该问题未指定是否使用 Lomuto 或 Hoare 分区类型方案。 Lomuto 会更简单,因为在进行递归调用时,枢轴已经到位并被排除在外。使用 Hoare 分区方案,枢轴元素可以在任何地方结束,并且在每个步骤中都将包含在左侧或右侧子分区中。
标签: algorithm sorting input time-complexity quicksort