Arrays 计数反转以查看数组是否部分排序
下面的排序数组定义来自Robert Sedgewick和Kevin Wayne的算法书Arrays 计数反转以查看数组是否部分排序,arrays,algorithm,sorting,Arrays,Algorithm,Sorting,下面的排序数组定义来自Robert Sedgewick和Kevin Wayne的算法书 如果反转数则数组被部分排序,随机排列中的预期反转数为~n2/4(例如,请参见) Sedgewick的书论述了渐进复杂性,其中的思想是“事物开始按照足够大的尺寸所规定的方式运行”。因此,即使从你的问题中取较大的c值,c好吧,从技术上讲,c也有一个上限,因为你只能有这么多的反转(即N(N-1)/2) 该算法适用于N,c不是N的函数,而是一个常数。您需要根据您的需求确定c。即使对于N的某些值,它的顺序为N^2,它仍
如果反转数则数组被部分排序,随机排列中的预期反转数为~n2/4(例如,请参见)
Sedgewick的书论述了渐进复杂性,其中的思想是“事物开始按照足够大的尺寸所规定的方式运行”。因此,即使从你的问题中取较大的c值,c好吧,从技术上讲,
c
也有一个上限,因为你只能有这么多的反转(即N(N-1)/2
)
该算法适用于N
,c
不是N
的函数,而是一个常数。您需要根据您的需求确定c
。即使对于N
的某些值,它的顺序为N^2
,它仍然是一个常数,对于更高的值,它将无法与N^2
进行比较。因此,通常没有办法限制c
无论何时,当您感到迫切需要将c
提升到建议的N^2
顺序,以获得N
的特定值时,请执行此操作。然后保持c
固定,并将N
提高几个数量级。然后享受将常数称为常数的奢侈,不管它有多大
更新
将最大倒数输入为
N(N+1)/2
,而不是N(N-1)/2
。现在修复。+1因为这是分析性的,而且更好。我需要学会分析。我的下一个答案需要至少有三十个0
s.@galactocalype在你的答案中加上0的数字θ(n)?:-)谢谢你对我重复回答的评论!我更喜欢你的答案,因为我更了解你的答案,因为我刚刚开始学习算法。这句话“你需要根据你的需求来确定c”对我来说意味着这里没有固定的公式,而是你在看上下文时决定的东西。
D C B A