python - 关于函数调用的选择排序的一个问题?(python数组)
问题描述
# Selection sort
# find smallest
def find_min(array):
min_val = array[0]
min_val_index = 0
for i in range(1, len(array)):
if array[i] < min_val:
min_val = array[i]
min_val_index = i
return min_val_index
# selection sort
def selection_sort(array):
new_array = []
for i in range(len(array)):
min_val = find_min(array)
new_array.append(array.pop(min_val))
return new_array
# array = [1,3,6,14,35,3,6] # ①
# selection_sort(array) # ②
selection_sort([4,2,5,6,7,9,1,8,3,10]) # ③
问题:</p>
我用①+②代替③时有问题(③是正确的)我不知道它们的区别。我尝试过相同的阵列,但没有帮助。这是错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-90-f31e6df2662f> in <module>
16
17 array = [1,3,6,14,35,3,6]
---> 18 selection_sort(array)
19 # selectSort([4,2,5,6,7,9,1,8,3,10])
<ipython-input-90-f31e6df2662f> in selection_sort(array)
12 for i in range(len(array)):
13 min_val = find_min(array)
---> 14 new_array.append(array.pop(min_val))
15 return new_array
16
IndexError: pop index out of range
解决方案
推荐阅读
- javascript - 如何处理循环中的大量 Ajax 请求并使用 JavaScript 防止“请求过多”
- openthread - OpenThead:是否可以通过不在您的 Thread 网络中的 Thread 设备中继信号?
- python - Discord.py AttributeError:“用户”对象没有属性“公会”
- python - 如何创建 MeetupAPI 密钥?
- c# - UWP - 当它引用的图像文件发生变化时,图像不会改变内容
- mysql - 从我的sql中的datekey中提取年份和月份
- java - FilterReader 类的标记方法
- c# - 未调用 ILoggerProvider Dispose 函数
- c# - 升级到 .NET Core 3.1:替换 UserManager.NormalizeKey 方法?
- android - 如何解决 android.content.res.Resources$NotFoundException: Resource ID #0x7f070187 type #0x4 is not valid