专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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

文章永久链接:https://tech.souyunku.com/24697

未经允许不得转载:搜云库技术团队 » Python 实现将数组值按从小到大的顺序排列

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们