11.2   选择排序 您所在的位置:网站首页 什么叫选择排序法 11.2   选择排序

11.2   选择排序

2024-06-15 05:55| 来源: 网络整理| 查看: 265

11.2   选择排序¶

选择排序(selection sort)的工作原理非常简单:开启一个循环,每轮从未排序区间选择最小的元素,将其放到已排序区间的末尾。

设数组的长度为 \(n\) ,选择排序的算法流程如图 11-2 所示。

初始状态下,所有元素未排序,即未排序(索引)区间为 \([0, n-1]\) 。 选取区间 \([0, n-1]\) 中的最小元素,将其与索引 \(0\) 处的元素交换。完成后,数组前 1 个元素已排序。 选取区间 \([1, n-1]\) 中的最小元素,将其与索引 \(1\) 处的元素交换。完成后,数组前 2 个元素已排序。 以此类推。经过 \(n - 1\) 轮选择与交换后,数组前 \(n - 1\) 个元素已排序。 仅剩的一个元素必定是最大元素,无须排序,因此数组排序完成。

图 11-2   选择排序步骤

在代码中,我们用 \(k\) 来记录未排序区间内的最小元素:

selection_sort.pydef selection_sort(nums: list[int]): """选择排序""" n = len(nums) # 外循环:未排序区间为 [i, n-1] for i in range(n - 1): # 内循环:找到未排序区间内的最小元素 k = i for j in range(i + 1, n): if nums[j]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有