【发布时间】:2018-09-10 15:55:20
【问题描述】:
这是我的伪代码
Procedure
i <- n
last <- 1
while i > last do
for j <- 1 to i-1 do
if t[j] > t[j+1] do
t[j] <-> t[j+1] {switch values}
last <- j
end if
end for
i <- last
last <- 1
end while
end
我只需要说明为什么这是对标准冒泡排序的改进并跟踪算法。我能应付的。为了进行一些测试和学习目的,我决定用 python 编写代码。我的实现不起作用。
def bubbleSort(arr):
n = len(arr)
i = n
last = 1
while (i > last):
for j in range(0, i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
last = j
i = last
last = 1
# Driver code to test above
arr = [5, 3, 89, 100, -4, 7, 45]
bubbleSort(arr)
我得到的输出是 3 ,5 ,89,-4 ,7 ,45 ,100 女巫意味着它只在内部循环中执行第一遍,但之后立即停止。
我从伪代码中翻译错了吗?
【问题讨论】:
标签: python pseudocode bubble-sort