当前位置: 首页 > news >正文

选择排序 Python实现

选择排序是一种简单直观的排序算法,通过重复选择未排序部分的最小元素并放置到已排序部分的末尾。以下是详细的实现和说明:

选择排序步骤

  1. 初始化:将数组分为已排序(左)和未排序(右)两部分。初始时,已排序部分为空。

  2. 查找最小值:遍历未排序部分,找到最小元素的索引。

  3. 交换元素:将最小元素与未排序部分的第一个元素交换,将其纳入已排序部分。

  4. 重复:重复上述步骤,直到所有元素排序完成。

Python 实现

python

复制

下载

'''
选择排序算法
'''
def find_smallest(arr):smallest = arr[0]smallest_index = 0for i in range(1, len(arr)):if arr[i] < smallest:smallest = arr[i]smallest_index = ireturn smallest_indexarr = [5, 3, 6, 2, 10]
# print(find_smallest(arr))def selection_sort(arr):new_arr = []for i in range(len(arr)):smallest = find_smallest(arr)new_arr.append(arr.pop(smallest))return new_arrprint(selection_sort(arr))

示例

输入数组:[64, 25, 12, 22, 11]
排序过程:

  • 第1轮:找到最小值11,交换后 → [11, 25, 12, 22, 64]

  • 第2轮:找到最小值12,交换后 → [11, 12, 25, 22, 64]

  • 第3轮:找到最小值22,交换后 → [11, 12, 22, 25, 64]

  • 第4轮:找到最小值25(已在位),数组不变。

特性

  • 时间复杂度:O(n²)(无论最好/最坏情况)。

  • 空间复杂度:O(1)(原地排序)。

  • 稳定性:不稳定(可能改变相同元素的相对位置)。

适用场景

  • 小规模数据。

  • 对内存使用要求严格。

  • 交换成本较高时(如元素为复杂对象)。

选择排序的核心思想是逐步确定元素的位置,虽然效率不高,但代码简单易懂,适合教学或简单应用场景。

相关文章:

  • 深度学习之-目标检测算法汇总(超全面)
  • Java 系统属性深度解析:从 API 校验到实战应用
  • 右键长按超过 200ms, 高亮选中的typora内容, win+a换颜色
  • 文件IO操作、目录操作
  • 软件开发的设计原则
  • 技术篇-2.2.JAVA应用场景及开发工具安装
  • 奥伦德OR-6N137-高速隔离运放光耦,替代6N137,自主晶圆,交期短
  • 什么是特征工程?
  • jmeter登录接口生成一批token并写入csv文件
  • “轩辕杯“云盾砺剑 CTF挑战赛web方向题解
  • 服务器数据恢复—V7000存储上raid5热备盘同步数据失败如何恢复数据?
  • fastadmin添加管理员账号只能查看一个表中指定条件的数据
  • String.join()-高效字符串拼接
  • 在线时间戳(Unix TimeStamp)转换器
  • Linux系统编程-DAY03
  • 新一代网校培训平台的技术演进:从教育源码开发到AI赋能教学转型
  • 【笔试强训day38】
  • 有没有开源的企业网盘,是否适合企业使用?
  • ssrf漏洞学习
  • labview实现登录系统
  • 35开始学网站开发/中山360推广
  • 杭州模板建站定制网站/模板网站建设开发
  • 做外贸网站卖什么好处/安徽网站设计
  • 政府网站安全建设 新闻/文章发布在哪个平台好
  • 晋城城乡建设局网站/免费建站系统官网
  • 网站建设和编程/核心关键词如何优化