一、个人理解可分为 5 步来实现:
1、函数 selectionSort 获取数组值后赋值到数组 arr 并传递到函数 findSmallest 查找当前 arr 的最小值。
2、函数 findSmallest 获取 arr 的值后,将 arr 的第一个值和索引存储到变量 samllest 和 smallest_index 上。
3、通过循环(循环次数为 arr 值总数)对比 arr[i] 的值和变量 smallest,如果 arr[i] 小于 smallest,那么将当前的 arr[i] 值取代原来的 smallest 值,完成整个循环对比后,返回最终最小值的索引值到函数 selectionSort。
4、函数 selectionSort 获取到数组索引后,通过 arr.pop(smallest_index) 移取出目标数值并通过 append 添加到新数组 newArr 中完成数值转移。
5、这时,再将被移除最小值的 arr 传值到 findSmallest 查找 arr 下一个最小值,完成所有循环后,就能得到一个从小到大的顺序排序排列的数组
二、代码实现
# 对数组进行排序
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest_index = findSmallest(arr)
newArr.append(arr.pop(smallest_index)) # 将 arr 中最小值移到 newArr 中.
return newArr
# 找出数组中最小元素
def findSmallest(arr):
smallest = arr[0] # 存储最小的值