算法中数组的最终内容

时间:2016-09-26 21:27:02

标签: arrays algorithm

我来自波兰的学生,我对这个算法的操作知之甚少。

以下是算法:

n <- 1
for i = 1,2, ..., k do
    n <- 2 * n
s <- 1
while s < n do
    j <- 1
    while j < n do
        if A[j] > A[j+s]
            switch places of( A[j], A[j+s] )
        j <- j+2s
    s <- 2s
return A[1], A[2], ... , A[n]

这里是波兰语表的链接,但我会尽力翻译(6.1表)。

http://imgur.com/kXilkiH

  • 第一列是k
  • 的值
  • 第二列表示“数组的初始值”
  • 第三列表示“数组的最终值”

我想知道如何用[1,4,3,2]完成数组[4,3,1,2]。有人可以解释这个算法如何适用于这个例子吗?

1 个答案:

答案 0 :(得分:0)

您要做的是手动跟踪您的代码。这是关于如何处理跟踪代码的small video。您还可以在Google上搜索&#34;手动跟踪代码&#34;。

这是一个繁琐的过程,但当您需要了解算法的执行方式时,它将是您想要做的。

一个小小的提示,第一段代码。 。 。

n <- 1
for i = 1,2, ..., k do
    n <- 2 * n

这只是计算n = 2^k。可能会尝试用手跟踪前三行代码进行练习,然后尝试用手跟踪其余部分。