在python中实现选择排序?
这似乎是一个简单的问题,但当我试图在Python中实现选择排序时,并没有得到排序列表。我的实现有什么问题吗在python中实现选择排序?,python,sorting,selection-sort,Python,Sorting,Selection Sort,这似乎是一个简单的问题,但当我试图在Python中实现选择排序时,并没有得到排序列表。我的实现有什么问题吗 def selectionSort (B, annotate=True): for i in range(len(A)): for j in range(1,len(A)): if(A[i] > A [j]): A[i], A[j] = A[j], A[i] A = [5, 4, 3, 2, 1] A_sorted = s
def selectionSort (B, annotate=True):
for i in range(len(A)):
for j in range(1,len(A)):
if(A[i] > A [j]):
A[i], A[j] = A[j], A[i]
A = [5, 4, 3, 2, 1]
A_sorted = selectionSort (A)
print ("Sorted " + str(A) + " = " + str(A_sorted))
A = [10, 7, 8, 40, 2, 5]
A_sorted = selectionSort (A)
print ("Sorted " + str(A) + " = " + str(A_sorted))
以下是我得到的:
>>> (executing lines 1 to 74 of "selection_sort_103_v2.py")
Sorted [1, 5, 4, 3, 2] = None
Sorted [2, 40, 10, 8, 7, 5] = None
我可以试试这个。你对j的索引也是从1固定的,它需要根据i而变化
def selectionSort (A, annotate=True):
for i in range(len(A)):
for j in range(i+1,len(A)):
if(A[i] > A [j]):
A[i], A[j] = A[j], A[i]
return A
检查值:
A = [5, 4, 3, 2, 1]
print selectionSort(A)
>>[1, 2, 3, 4, 5]
此外,如果要同时打印旧数组和新数组,可能需要通过引用旧数组来保存它
A = [5, 4, 3, 2, 1]
Arr=A[:]
A_sorted=selectionSort(A)
print ("Sorted " + str(Arr) + " = " + str(A_sorted))
您不会从函数中返回任何内容。此外,您不使用参数B:所有工作都是在全局
A
上完成的。请修复您的缩进。它可以这样做吗?-@第二次世界大战:如果只是,但不是。