我有这个数组A = <3,2,9,0,7,5,4,8,6,1>
,我想写下所有最差的分区是正确的吗?谢谢
a1 = <0,2,9,3,7,5,4,8,6,1>
a2 = <1,9,3,7,5,4,8,6,2>
a3 = <2,3,7,5,4,8,6,9>
a4 = <3,7,5,4,8,6,9>
a5 = <4,5,7,8,6,9>
a6 = <5,7,8,6,9>
a7 = <6,8,7,9>
a8 = <7,8,9>
a9 = <8,9>
a10 = <9>
答案 0 :(得分:1)
我的理解是你要显示给定数组的最差分区序列(像quicksort执行的分区)。
在这种情况下,您可以对数组进行排序,然后显示数组的所有“尾部”,从索引0开始,以索引n-1结束。
在您的示例中,排序的数组是:
[0,1,2,3,4,5,6,7,8,9]
然后尾巴是:
[0,1,2,3,4,5,6,7,8,9]
[1,2,3,4,5,6,7,8,9]
[2,3,4,5,6,7,8,9]
...
[8,9]
[9]
如果显示所有分区,那么这是一个O(n ^ 2)算法(显然无法改进)。如果您只需要显示枢轴,可以在O(n * log n)中进行。