如何解决为什么在Python中执行Selection Sort时会返回“ None Type”?
我正在尝试在Python中实现选择排序算法 由于某些原因,已排序数组以
None
的形式返回。这是代码:
#Selection Sort
def selection_sort(array):
for i in range(len(array)):
min_idx = i
for j in range(i+1,len(array)):
if array[j]<array[min_idx]:
min_idx = j
array[i],array[min_idx] = array[min_idx],array[i]
array = [1,7,5,3,9]
print(f"Original Array: {array}")
x=selection_sort(array)
print(f"Sorted Array: {x}")
输出:
Original Array: [1,9]
Sorted Array: None
解决方法
这是因为您忘记添加return,因此该函数返回None。
该代码对我有用:
#Selection Sort
def selection_sort(array):
for i in range(len(array)):
min_idx = i
for j in range(i+1,len(array)):
if array[j]<array[min_idx]:
min_idx = j
array[i],array[min_idx] = array[min_idx],array[i]
return array
array = [1,7,5,3,9]
print(f"Original Array: {array}")
x=selection_sort(array)
print(f"Sorted Array: {x}")
,
这是您可以做的事情:
-
U已传递值列表,该值列表作为对该函数的引用传递。 因此您可以期望结果,即您通过->数组的列表中的排序数组。所以 你可以做这样的事情
print(f"Sorted Array: {array}")
-
如果您想保持原始列表不变,请将副本传递给如下所示的函数:
x=selection_sort(array[:])
并通过在末尾添加以下行来从函数中返回值:
return array
并像您在代码中一样打印
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。