我无法理解这个伪代码,并将其实现到我的程序中。任何人都可以更好地解释它或告诉我代码的外观吗?感谢。
A - an array containing the list of numbers
numItems - the number of numbers in the list
for i = 0 to numItems - 1
for j = i+1 to numItems
if A[i] > A[j]
// Swap the entries
Temp = A[i]
A[i] = A[j]
A[j] = Temp
End If
Next j
Next i
答案 0 :(得分:6)
好吧,让我们把伪代码翻译成伪英语。
A - an array containing the list of numbers
numItems - the number of numbers in the list
for i = 0 to numItems - 1
for j = i+1 to numItems
if A[i] > A[j]
// Swap the entries
Temp = A[i]
A[i] = A[j]
A[j] = Temp
End If
Next j
Next i
可能会读取
Count through each item, from the beginning to the end, calling it X
While considering item X, count through each item after it, from just
after X to the end, calling it Y
If X is bigger than Y, swap the two, temporarily storing X in Temp
so it doesn't get lost when we copy Y into X. Copy Y into X, and then
Copy the temporarily stored old value of X (remember it is in Temp)
back into Y. Now the values of X and Y are swapped (so X is now smaller
than Y)
现在用代码编写它是你的工作。
答案 1 :(得分:1)
算法的名称会告诉你很多关于它的信息。它首先选择列表中的最小元素并将其放在第一个位置。然后它选择第二个并将其放入第二个等等。
你如何找到最小的元素?那么你看一下列表,如果你看的元素小于列表开头的元素,那就换掉它。
你如何找到第二小的?你知道最小的元素已经在第一个位置了。这意味着第二个最小的必须是第二个元素和列表末尾之间的最小元素。所以你再次进行适当的互换。
泡沫,冲洗并重复。
如果您想知道如何交换元素。试想一下你将如何手工完成。你选择元素1并将其放在一个安全的地方,将元素2放在元素1的旧点中,然后将元素1放在元素2的旧点中。使用的临时变量将代表您放置元素1的安全位置。
Wikipedia有一篇很好的文章。
答案 2 :(得分:0)