python数组从⼩到⼤排序_Python实现将数组值按从⼩到⼤的
顺序排列
⼀、个⼈理解可分为 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] # 存储最⼩的值
smallest_index = 0 # 存储最⼩值的索引
for i in range(1, len(arr)):
python获取数组长度if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
result = selectionSort([5, 3, 0])
print(result) # [0, 3, 5]
三、数据测试
1、假设我们要排序数组 [5, 3, 0],那么这时 arr = [5, 3, 0]
2、通过函数 findSmallest(arr) 对⽐查最⼩值得到是 0 ,⽽ 0 的索引是 2,即会返回 2 并赋值到函数 selectionSort 的变量smallest_index 中。
3、通过 arr.pop(2) 移除 arr 中对应的数据(0),⼜通过 append 赋值 0 到新数组 newArr 中。
4、这时 arr = [5, 3],newArr = [0]。因为 selectionSort 的循环还没有结束,所以要进⾏下⼀次循环,把改变后的 arr([5, 3])传到函数 findSmallest(arr) 进⾏新的⼀轮对⽐返回当下数组([5, 3])最⼩值的索引。
5、以此循环类推,最后得到⼀个从⼩到⼤的顺序排序排列的数组([0, 3, 5])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论