我想测试快速排序的时间复杂度,但我不知道如何生成数组来测试最佳情况。我的快速排序版本将数组的最后一个元素作为枢轴。
最佳答案
假设所有的数组元素都不同,如果您总是选择最小或最大的元素,那么您显然会遇到最坏的情况。这将为您提供最差的递归深度和最大比较次数。
但最坏的情况下,你也会想要多次交换。当最后一个元素是最小的,或者当它是数组中的最大元素时,检查你的快速排序实现移动了多少个元素。决定什么是最坏的。然后排列数组中的数字,使每个子数组中的最后一个元素始终是最坏的情况。
关于c++ - 如何生成用于测试快速排序最佳案例的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583266/