Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 计数反转以查看数组是否部分排序_Arrays_Algorithm_Sorting - Fatal编程技术网

Arrays 计数反转以查看数组是否部分排序

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,它仍

下面的排序数组定义来自Robert Sedgewick和Kevin Wayne的算法书


如果反转数则数组被部分排序,随机排列中的预期反转数为~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