假设我有一个大小为n的数组,该数组的最大值为k。
我们假设k=log(sqrt(n))
并且我想以最有效的方式对此数组进行排序,为此,我已经简化了等式,以k
和n
得到n=2^2k
我有Θ(n^(2))
这是我的数组大小。
现在,如果我应用Θ(2^(4k))
的任何排序算法,时间复杂度将等于n
Θ(n^2)
这将是Θ(nlogn)
,如果我应用Θ(k*2^(2k))
排序算法,我将Θ(nlog(sqrt(n)))
,并且就ni来说,k=n^n
这将是最有效的时间复杂度,我做到了这一点吗?
如果我假设Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Location = New Point(50, 70)
End Sub
我可以使用与以前相同的方法吗?
为此,我没有用k表示使用相同方法的数组大小,还有另一种方法吗?
答案 0 :(得分:0)
知道要排序的数组中的最大元素值k可能会有所帮助,特别是如果在您的情况下k< ñ。在这种情况下,您可以使用counting sort,运行时间为O(n + k)