证明存在10次交换的O(n)算法

弗雷斯托·弗雷斯托

一个著名的问题是找到用于排序数组的最小交换量。我的问题是,我们有大小为n的数组,我们知道可以用10个交换对它进行排序(我们不知道移动数,仅知道移动数)。我想证明存在一个O(n)算法(用于时间)对该数组进行排序。

首先,为了证明这一说法,我应该提出一些代码吗?我不知道如何证明它。第二,这与排序数组的最小交换量有关吗?

谢谢你的帮助

我的天啊

您的解决方案是采用自适应排序算法

自适应排序算法的经典示例是“直接插入排序”在这种排序算法中,我们从左到右扫描输入,重复查找当前项目的位置,并将其插入到先前已排序项目的数组中。

我们知道:

该算法的性能可以用输入中的反转次数来描述,然后T(n)大致等于I(A)+(n-1),其中I(A)反转次数是。

因此,正如您的情况一样,求反的次数是恒定的,该算法的复杂度将为Theta(n)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

证明不存在这样的算法

来自分类Dev

贪婪算法交换证明(算法设计,第4章,6E)

来自分类Dev

证明lg(n!)= O(n!)

来自分类Dev

移位n次算法

来自分类Dev

如何使用求和符号证明算法为Θ(log n)?

来自分类Dev

如何证明从最小节点在BST中找到n-1次后继者是O(n)?

来自分类Dev

证明n = o(2 ^ {f(n)})?

来自分类Dev

证明 g(n) 是 O(g(n))

来自分类Dev

高效的10次幂x算法

来自分类Dev

是否存在一种算法,可以在少于n ^ 3次迭代中找到一个* n矩阵的乘积?

来自分类Dev

是否存在一种算法,可以在少于n ^ 3次迭代中找到一个* n矩阵的乘积?

来自分类Dev

算法分析-匿名函数证明

来自分类Dev

证明算法的上限和下限

来自分类Dev

哪种算法返回的形式证明

来自分类Dev

导电证明存在问题

来自分类Dev

是否存在时间复杂度为O(N)的排序算法?

来自分类Dev

选择排序算法交换

来自分类Dev

如何证明以下函数hg(n)= O(f(n))

来自分类Dev

O(N)算法比O(N logN)算法慢

来自分类Dev

证明加法的可交换性,取2

来自分类Dev

精益证明中交换环的幂等

来自分类Dev

O(n)子串算法

来自分类Dev

堆化的O(n)算法

来自分类Dev

改进 O(n^2) 算法

来自分类Dev

证明或非证明Ω(n)=ω(n)UΘ(n)

来自分类Dev

证明∑ i至n(logi)的总和为O(nlogn)

来自分类Dev

证明两种算法是相同的

来自分类Dev

算法的正确性证明

来自分类Dev

证明Heap的生成置换算法