排序算法思想描述
排序算法思想描述
---qpz
一、直接选择排序法
a) 核心思想:在无序区间寻找最值与无序区间首元素交换
遍历所有元素排序
1. 记录无序区间第一个元素位置
2. 向后遍历所有元素寻找最值位置(寻找最大值还是最小值取决于降序还是升序)
3. 遍历结束以后找到最值,交换与记录点的位置,记录点向后移动一位
4. 重复123过程直到所有元素遍历完成
时间复杂度为O(n^2) 空间复杂度为O(1)
二、直接插入排序法
a) 核心思想:不断的从无序区间取值插入有序区间使得有序区间依然有序
i. 区第一个元素为有序区间
ii. 取无序区间第一个元素,保存元素值
iii. 将次元素值从后向前与有序区间元素比较(大还是小取决于降序还是升序)
iv. 每次比较开始前将有序区间元素后移
v. 直到找到插入点,将元素插入
vi. 重复2-5步骤直到无序空间为空
b) 时间复杂度为O(n^2) 空间复杂度为O(1)
三、冒泡排序法
a) 核心思想:遍历n次,每次遍历不断的交换相邻元素直到本次遍历结束没有交换一次或者n次遍历结束
i. 从第一个元素开始向后遍历,比较本次元素与下一个元素的大小为交换条件(大小取决于降序还是升序)
ii. 记录下一个元素重复1,结束条件为区间最后一个元素
iii. 区间长度-1
b) 时间复杂度O(n^2) 空间复杂度O(1);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异