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)):

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])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值