Python | 11大排序学习总结
2025.7.12-7.13简介此文章是本人对11大排序的学习和理解方便自己以后回想记忆。好了正片开始11.选择排序特点一个对小白友好的排序理解从未排序序列中选择出最小元素排在第一位。此后依此循环直到序列呈升序排列算法结束。eg序列 8 5 6 4 3 7 102①最小元素为2把它排在第一位28 5 6 437 10②2不动剩下序列中第二小元素为3把它排在第二位238 5 647 10③2 3不动再排第三小元素4把它放在第三位2 348 5 6 7 10用Python实现此排序我这个打印出来是递减排序。若升序则将 改为即可。代码解释Q1时间复杂度 O(n^2Q2空间复杂度 O(n^2)Q3: 改善时间复杂度用线段树优化选择最值过程10.冒泡排序特点气泡数值小逐渐浮出水面理解比较相邻的元素数值大的元素不断到达序列末尾。eg85 6 4 3 7 10 2①8 VS 585 则8向后移动1位 (586 4 3 7 10 2)②8 VS 686 (5 684 3 7 10 2)③8 VS 484 (5 6 483 710 2④⑤同理⑥8VS10: 810 则10向末尾移动 (5 6 4 3 782 10代码展示代码解释Q1时间复杂度 O(n^2)Q2空间复杂度 O(1)Q3如果是递增顺序就没有必要排了9.插入排序形象记忆整理扑克牌理解前一个元素和它后面相邻元素进行比较数值小的那个插入到它在此序列中真正合适的位置eg8 5 6 4 3 7 10 2①855 864 3 7 10 2②86 and 65 (56843 7 10 2)③865445 6 83 7 10 2代码展示代码解释Q1时间复杂度 O(n^2)Q2空间复杂度 O(1)8.归并排序特点用到了递归和合并理解先分后合分治思想eg8 5 6 4 3 7 10 2①分组: ( 8 5 | 6 4 | 3 7 | 10 2 )②组内排序( 5 8 | 4 6 | 3 7 | 2 10)③两两一组合并(4 5 6 8 | 2 3 7 10)④最后合并两个数组即可代码展示此处打印出来的是递减序列。 若升序把if a[l] a[r] 改为即可代码解释Q1时间复杂度 O(nlogn)Q2: 空间复杂度 O(n)Q3: 没必要的就不枚举7.桶排序理解数字们快到到桶里来桶里装的数字必须是第二桶所有数都比第一桶大后面步骤进行选择排序eg7 11 5 9 8 6 3 12 1 10 4 2①生成三个桶②放入数字(3 1 4 27 5 8 611 9 12 10代码展示代码解释6.计数排序理解类似于累计eg2 3 1 3 2 1 4 2 4 6 2①生成区间范围为19的计数器数组②数字一一放入计数器数组中图片来自b站UP主英雄哪里出来代码展示代码解释时间复杂度 O(nk)空间复杂度O(k)5.基数排序理解建立几个桶按照个 十 百 千 位依次排序每次都要取出来放回原数组中 本质也是个桶排序代码展示代码解释有负数的情况设置偏移量把所有数先减去最小的负数排序完再加上最小数时间复杂度 O(d*(nk))空间复杂度 O(nk)4.快速排序理解选择一个基准数不动让它和其他数比较大于它的数放一起 小于它的数放一起 基准数和左临界数左边的数字交换位置最后用递归排序完成eg8 5 12 9 4 10 11 3 6 7 2 1以8为基准(8 5 9 4 3 6 7 2 1 12 9 10 11)把8和1交换(1 5 9 4 3 6 7 2 8 12 9 10 11)依此循环代码展示代码解释时间复杂度O(nlogn)空间复杂度O(logn)当数列升序排列时 有局限性3.随机快速排序理解基准数随机了其他没变代码展示解释时间复杂度O(nlogn)空间复杂度O(logn)2.希尔排序插入排序进阶版eg8 5 6 4 3 7 10 2增量为四 分为四组 8 35 76 104 2)同组内部插入排序 3 85 76 102 4)增量为二 分为两组3 6 8 105 2 7 4第一组不动 第二组再进行插入排序增量为一 所有元素归一3 6 8 10 2 4 5 7 最后再进行插入排序代码展示解释时间复杂度O(n^2)空间复杂度O(11.堆排序运用完全二叉树大/小顶堆最大/小的数在最顶端结点编号idx左子数根编号idx * 2右子数根编号idx * 2 1下沉数字小的往下走eg手绘有点丑一点哈哈全部排完即形成大顶堆后要保证升序排列就把最大数与序号最大所在的数进行交换eg代码展示解释时间复杂度O(nlogn)空间复杂度O(1)反思在此学习中仍需改进地方①不会从例题的升序排列到自己操作降序排列 ②如果有负数存在像基数排列却无从下手 ③有些基础知识例如时间复杂度空间复杂度 完全二叉树尚未掌握解决方案还需要多举一反三 多尝试 学会模仿后需自行动手操作。后续会发出一篇关于时间复杂度空间复杂度 完全二叉树相关知识补充结语感谢自己最后坚持下来学完十一大排序和写完这篇文章再接再厉希望每天能敲敲代码目前熟练度也有所上升写博客其实和我初中写的那种图文文章还不太一样博客更注重事实和证明偏理那种吧学编程和写博客让我感悟到了自学要先学会模仿嗯。本次学习资料来源bilibili的UP主英雄哪里出来我看弹幕里说up主好像也有CSDN的账号不知道是不是真的非常感谢“佛祖老师”的Python课 无论是视频效果还是编程技术都很牛波一

相关新闻

如何利用Video2X实现专业级AI视频超分辨率与帧插值:完整指南

如何利用Video2X实现专业级AI视频超分辨率与帧插值:完整指南

如何利用Video2X实现专业级AI视频超分辨率与帧插值:完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi…

2026/10/2 8:16:55 阅读更多 →
【单片机毕设案例分享】基于单片机的多参数室内环境自动调控硬件设计 基于 STC89C52 的室内环境声光预警控制系统实现(017801)

【单片机毕设案例分享】基于单片机的多参数室内环境自动调控硬件设计 基于 STC89C52 的室内环境声光预警控制系统实现(017801)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

2026/10/10 19:41:44 阅读更多 →
GPT2-Chinese中文语言模型实战指南:从零开始构建专业级文本生成系统

GPT2-Chinese中文语言模型实战指南:从零开始构建专业级文本生成系统

GPT2-Chinese中文语言模型实战指南:从零开始构建专业级文本生成系统 【免费下载链接】GPT2-Chinese Chinese version of GPT2 training code, using BERT tokenizer. 项目地址: https://gitcode.com/gh_mirrors/gp/GPT2-Chinese GPT2-Chinese是一个基于PyTor…

2026/10/11 1:42:42 阅读更多 →

最新新闻

Kiln AI Server Python 客户端库使用指南:同步/异步 API 调用与高级定制实战

Kiln AI Server Python 客户端库使用指南:同步/异步 API 调用与高级定制实战

人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用 【免费下载链接】Kiln Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more. 项目地址: https://gitcod…

2026/10/14 18:22:46 阅读更多 →
鸿蒙应用内添加服务卡片到桌面:权限配置至formId管理的完整实践

鸿蒙应用内添加服务卡片到桌面:权限配置至formId管理的完整实践

前两天有个开发者在我写的卡片文章下面留言:应用里能不能直接触发“添加卡片到桌面”?用户根本不知道要长按桌面再选卡片,好多功能做出来都没人发现。这个问题其实问的人挺多的。鸿蒙的服务卡片虽然好用,但系统默认的添加路径藏在…

2026/10/14 18:22:46 阅读更多 →
自制轻量级单片机UI框架:低资源平台的架构设计与内存优化

自制轻量级单片机UI框架:低资源平台的架构设计与内存优化

我最早动起"自制轻量级单片机UI框架"这个念头,是在一个被现成UI库逼疯的下午。手里这块板子的MCU只给了64KB Flash和16KB RAM,产品需求却要一个带按钮、进度条和多级菜单的界面。我试着把一个开源UI库编进去,编译完一看&#xff0c…

2026/10/14 18:22:46 阅读更多 →
51单片机红外遥控NEC解码与波形显示方案

51单片机红外遥控NEC解码与波形显示方案

简介:这是一套基于51单片机的红外遥控解码与波形显示项目资料,面向电子爱好者、嵌入式初学者以及单片机课程设计/毕业设计人群,解决从红外信号接收、脉冲解码到LCD波形显示的全流程实现问题。压缩包共38个文件、9.68MB,涵盖C语言源…

2026/10/14 18:22:46 阅读更多 →
uIP TCP/IP协议栈实战:从Client到Server的嵌入式移植全解析

uIP TCP/IP协议栈实战:从Client到Server的嵌入式移植全解析

简介:基于uIP协议栈的TCP客户端与服务器程序,源自ALIENTEK战舰STM32开发板第52章,面向使用STM32与ENC28J60进行嵌入式网络通信的开发者。资源包含完整工程与配套文档,共223个文件,以C语言源文件(76个.c&…

2026/10/14 18:22:46 阅读更多 →
JavaScript sort排序原理与常见陷阱解析

JavaScript sort排序原理与常见陷阱解析

先说个我自己的真实经历。有次帮同事排查一个列表排序问题,数据是几组数字,他写了 arr.sort() ,结果排出来是 [1, 10, 2, 22, 3] 这种完全看不懂的顺序。他盯着屏幕看了半天,第一反应是"sort排序坏了"。其实不是坏了…

2026/10/14 18:21:46 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →