我来自波兰的学生,我对这个算法的操作知之甚少。
以下是算法:
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表)。
我想知道如何用[1,4,3,2]完成数组[4,3,1,2]。有人可以解释这个算法如何适用于这个例子吗?
答案 0 :(得分:0)
您要做的是手动跟踪您的代码。这是关于如何处理跟踪代码的small video。您还可以在Google上搜索&#34;手动跟踪代码&#34;。
这是一个繁琐的过程,但当您需要了解算法的执行方式时,它将是您想要做的。
一个小小的提示,第一段代码。 。 。
n <- 1
for i = 1,2, ..., k do
n <- 2 * n
这只是计算n = 2^k
。可能会尝试用手跟踪前三行代码进行练习,然后尝试用手跟踪其余部分。