选择排序:20年前在谭浩强《c语言程序设计上》学习过(43)

liftword21小时前技术文章5

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

和猫妹学Python,一起趣味学编程。


今日主题

什么是选择排序?

用Python写段代码,实现插入排序。


选择排序

选择排序是一种简单的排序算法,它的基本思想是在待排序的数列中,找到最小(大)的元素,然后将其放到数列的起始位置,再从剩余的未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

以此类推,直到所有元素均排序完毕。具体实现过程如下:

  1. 在未排序序列中,找到最小元素,记录其位置。
  2. 将最小元素与未排序序列的第一个元素交换位置。
  3. 在剩余未排序元素中,重复步骤1和步骤2,直到整个序列排序完成。

选择排序的时间复杂度为 O(n^2),适用于数据量较小的情况。

认真看下图,秒懂:


Python实现

如果你理解了上述过程,不妨写代码实现下,看能否把思路变成代码,这很重要。

list1=[4,6,32,5,12,2,15,28,9,10]
length=len(list1)


print("排序前:",list1)


for i in range(length - 1):
    min_index = i
    for j in range(i+1,length):
        if list1[min_index] > list1[j]:
            min_index=j
        list1[min_index],list1[i] = list1[i],list1[min_index]
    print(f"第{i+1}轮排好序时{list1}")
        
print("最终排好序的列表:",list1)


猫爸说,二十年前,他上大学那会,学的第一门编程语言是c语言,作者是谭浩强教授。

c语言也是一门非常流行的语言,应用领域非常广。

那本书中有讲到选择排序和冒泡排序,必考内容,刚毕业时,面试也经常考试这个,发张A4纸手写代码。

好长时间不用,都忘记了。

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

相关文章

Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!

Python 3.14 重磅更新!UUIDv6/v7/v8 强势来袭,别再用 uuid4 () 啦! 为什么说 UUID 升级是 2025 年 Python 开发者的必学技能?在当今互联网应用中,UU...

Python 中实现选择排序(python中的选择排序算法)

选择排序算法在每次迭代中从未排序的列表中找到最小的元素,并将该元素放在未排序列表的开头。也可以查找最大值,实现降序排序。选择排序的执行过程对于列表使用选择排序算法进行升序排序:循环迭代列表,将第一个元...

Python学不会来打我(94)python序列的知识点总结

在Python中,序列(Sequence)是一种基础数据结构,具有以下核心特征和类型划分:#python##python自学##python教程#1. 序列的定义与特性定义:序列是一块可存放多个...

实现希尔排序——Python(希尔排序实现代码)

关于希尔排序希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序...

你应该知道的关于 Python 排序的 4 个技巧

介绍在本文中,你将了解一些你以前可能不知道的关于排序的技巧。目录Sorted() VS Sort() 用于列表、元组和字典根据你的标准排序对复杂对象的集合进行排序用内置函数attrgetter进行排序...

Python教程-列表排序(python中如何给列表排序)

作为软件开发者,我们总是努力编写干净、简洁、高效的代码。Python 是一种强大的编程语言,它有许多内置的函数和库。其中一个库是 "列表 "模块,它提供了强大的工具来管理 Python...