野牛程序员讲少儿编程之选择排序(Python版)
作者:野牛程序员:2025-03-14 13:16:49python阅读 2057
野牛程序员讲少儿编程之选择排序(Python版)
🐍 野牛程序员讲少儿编程之选择排序(Python版)
选择排序(Selection Sort)是一种简单直观的排序算法,适合少儿编程学习,因为它的逻辑清晰,步骤明确。
✨ 野牛程序员讲选择排序的思路
从头开始,找到最小的数,放到当前排序位置。
再从剩下的元素中继续找最小的数,放到正确的位置。
重复这个过程,直到所有元素都排好序。
📌 选择排序可视化
以数组 [64, 25, 12, 22, 11]
为例:
轮次 | 数组状态 | 说明 |
---|---|---|
初始 | 64, 25, 12, 22, 11 | 初始数组 |
第 1 轮 | 11, 25, 12, 22, 64 | 找到 11(最小),和 64 交换 |
第 2 轮 | 11, 12, 25, 22, 64 | 找到 12(最小),和 25 交换 |
第 3 轮 | 11, 12, 22, 25, 64 | 找到 22(最小),和 25 交换 |
第 4 轮 | 11, 12, 22, 25, 64 | 25 已经是最小值,不用换 |
结束 | 11, 12, 22, 25, 64 | 排序完成 ✅ |
🏆 Python 代码
def selection_sort(arr): n = len(arr) for i in range(n - 1): min_index = i # 记录最小值索引 for j in range(i + 1, n): if arr[j] < arr[min_index]: min_index = j # 更新最小值索引 arr[i], arr[min_index] = arr[min_index], arr[i] # 交换 print(f"第 {i + 1} 轮排序: {arr}") # 观察排序过程 # 测试代码 arr = [64, 25, 12, 22, 11] print("原始数组:", arr) selection_sort(arr) print("排序后数组:", arr)
🚀 运行效果
原始数组: [64, 25, 12, 22, 11] 第 1 轮排序: [11, 25, 12, 22, 64] 第 2 轮排序: [11, 12, 25, 22, 64] 第 3 轮排序: [11, 12, 22, 25, 64] 第 4 轮排序: [11, 12, 22, 25, 64] 排序后数组: [11, 12, 22, 25, 64]
野牛程序员总结
选择排序的核心思想:每轮找 最小值,放到正确的位置。
适合少儿编程入门,逻辑简单,容易理解。
但选择排序的 效率较低(O(n²)),对于大数据不适用。
学会了选择排序,后续可以尝试 冒泡排序、插入排序、快速排序,进一步提升算法能力!🔥
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
