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

news2024/11/26 6:22:05

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

我是猫妹,一名爱上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纸手写代码。

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

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

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

我是猫妹,咱们下次见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Contrastive Learning

https://towardsdatascience.com/understanding-contrastive-learning-d5b19fd96607 The Beginner’s Guide to Contrastive Learning Contrastive Representation Learning | LilLog

Visual Studio 怎样设置断点并调试

1-普通断点 设置普通断点的方法很简单,就是在代码行的左边栏灰色区域点击或者把光标放在某代码行,按下 F9。 2-调试 按F5开始调试,按F11是逐行调试,F10是逐过程调试,shiftF5是停止调试。 3-高级调试 见链接&#x…

学系统集成项目管理工程师(中项)系列22b_信息化知识(中)

1. 信息化 1.1. 产品信息化 1.1.1. 信息化的基础 1.2. 企业信息化 1.2.1. 国民经济信息化的基础 1.3. 产业信息化 1.3.1. 【21下选08】 1.4. 国民经济信息化 1.5. 社会生活信息化 1.6. 【22上选08】 1.7. 基本内涵 1.7.1. 信息化的主体是全体社会成员,包…

日语文法PPT截图16-30

16句子的构成 单句 谓语只出现了一次 重句 两个谓语 并且两个谓语是对应的关系 由多个在意义上有差距的小句共同构成的句子 叫复文 用一个句子去修饰一个名词 也是个很典型的复文 被名词化了的句子充当小句,这也是复文的一种情况 引用形式的复文 对于这种复文的…

Java-API简读_java.util.RandomAccess接口(基于JDK1.8)(不涉及源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130727525 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

史上最详细的SQL盲注入门教程

测试同学在做安全测试时,相信多少都会遇到SQL注入与盲注的漏洞,那么今天我们就来分享下SQL注入与盲注的相关知识,希望对大家有所启发。 一、SQL盲注的定义 SQL注入,简单理解,也就是将用户输的的内容当代码执行了&…

Docker的使用 (1.安装docker)

安装docker前非常重要的准备工作 请保证你的centos 操作系统为至少为7版本请关闭linux的防火墙虚拟机联网,安装好yum工具 安装docker # 设置docker镜像源 yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed…

Aqua 启动管道完整性扫描以检测恶意软件

云原生安全提供商 Aqua Security 已宣布添加管道完整性扫描,以防止软件供应链攻击并确保 CI/CD 管道完整性。 在 eBPF 技术的支持下,Aqua 的管道完整性扫描器实时检测并阻止可疑行为和恶意软件,防止代码篡改并应对软件构建过程中的威胁。 该…

Spring Boot异常处理

目录 Spring Boot异常处理 介绍 拦截器VS 过滤器 自定义异常页面 自定义异常页面 代码实战 需求 代码实现 创建MyErrorController类来模拟异常错误 完成测试 全局异常 说明 全局异常-应用实例 创建GlobalExceptionHandler.java 创建对应的视图地址global.html 完成…

Docker的使用 (1.什么是docker)

前言 这个系列是我自己学习使用docker的记录和分享,作为一名开发人员,你需要了解这个东西并且学会它的简单使用,但是作为一名开发而不是运维,不要花过多的时间去深究它的原理,而是把它当作一个工具即可 docker Docke…

新的RA Group勒索软件针对美国组织进行双重勒索攻击

一个名为“RA Group”的新勒索软件组织针对美国和韩国的制药、保险、财富管理和制造公司。 新的勒索软件行动始于 2023 年 4 月,当时他们在暗网上启动了一个数据泄露站点,以发布受害者的详细信息和被盗数据,采用了大多数勒索软件团伙使用的典…

1.2 Kubernetes架构组件

1.2 Kubernetes架构组件 学习Kubernetes的架构组件,也就是说我们要搭建一个Kubernetes集群里面应该有哪些组成部分,里面具体会有哪些组件。如图 组建一个Kubernetes的集群至少需要包含两个部分,即Master和node,Master即主控节点&…

5月16日|5月17日 6H|时间轴复盘

目录 5月16日 5月17日 5月16日 7:50 起床 7:50-8:25 洗漱到教室吃饭🥚🥚🥛 8:25-8:55 扇贝单词*105 【30min】 8:55- 20:10-21:04 做阅读真题 21:04-21:49 订正答案 糟糕的一天 记忆完全失踪 🆘 5月17日 7:00 起床 7:00-7:30 起床洗漱到教室 7:30-8:00…

1.3 Kubernetes核心概念

1.3 Kubernetes核心概念 在Kubernetes中有三个核心的概念,即Pod、Controller、Service。整个过程可以理解为通过Service统一入口进行访问,由Controller去创建Pod进行部署。 1.3.1 Pod Pod是在Kubernetes中最小的部署单元,如图 Pod的特点 …

免费可用 ChatGPT 网页版

前言 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来…

2.5 Java开发环境搭建

2.5 Java开发环境搭建 一、JDK下载与安装 我们主要下载安装JDK8,有些人认为现在已经更新到了JDK12以及更高的版本,无论JDK12、13还是更高的版本,在企业中用的并不是很多,而且每次更新只是增加了一些新特性,我们只需要…

PDF大文件批量去除水印,又一个省心小妙招

PDF大文件批量去除水印,又一个省心小妙招 适用场景:本教程适合批量去除文件量较大的PDF文档内的图片水印。 使用软件:Python; 需安装第三方库:PIL,fitz,pymupdf pip install PIL pip install…

Robot Framework+Jenkins持续集成UI自动化项目

使用Robot Framework框架可进行Web端和APP端的UI自动化测试,为方便定时执行,可将Robot Framework的自动化项目持续集成至Jenkins平台,具体的操作步骤如下: 安装Jenkins的步骤如下: 手把手教小白安装Jenkins_程序员馨馨…

关于对【java中的Lambda表达式】的理解与简述

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130522535 出自【进步*于辰的博客】 坦白说,在我学会如何使用Lambda表达式后&#x…

机器学习笔记:高斯混合模型 GMM

1 高斯混合模型 总体分布是由K个高斯分布的组成的混合分布 1.1 一些记号 xj第j个观测数据K模型中高斯模型的数量αk 观测数据属于第k个子模型的概率 第k个子模型的高斯分布密度函数 (也就是一个高斯分布的密度函数 第j个观测数据属于第k个子模型的概率 1.2 高斯…