【发布时间】:2017-02-03 22:52:13
【问题描述】:
我已经在 python 中实现了选择排序,但无法理解内部 for 循环的这一小部分。
j 的 for 循环,我的范围从外部索引 i 到最大长度-1,这对我来说很有意义,但结果不会计算最后一个数字数组,我想不出原因。
但是,如果我将范围从 i 更改为最大长度,它将起作用。 (据我所知,这应该超过数组,因为 alist[len(alist)] 将计算 1 位数通过最大数)。
#Go over the loop, find the smallest num
def swap(arr, num_1, num_2):
temp = arr[num_1]
arr[num_1] = arr[num_2]
arr[num_2] = temp
def selectionSort(alist):
for i in range(0, len(alist)-1):
min = i
# for j in range(i+1, len(alist)):
# Why len(alist)-1 doesn't work?
for j in range(i, len(alist)-1):
if alist[j] < alist[min]:
min = j
if min != i :
swap(alist,i,min)
return alist
# Test
print "-------------Test--- ----------"
A = [2,1,9,3,4,100,99,30]
print selectionSort(A)
【问题讨论】:
标签: python selection-sort