排序算法思想描述

简介: 排序算法思想描述

排序算法思想描述


---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);

相关文章
|
6天前
|
机器学习/深度学习 运维 算法
大模型开发:描述一种用于异常检测的技术或算法。
LOF算法是一种无监督异常检测技术,通过比较数据点局部密度识别离群点。它计算每个点的局部离群因子得分,得分高则异常可能性大。主要步骤包括:距离度量、k近邻搜索、计算局部可达密度和LOF得分,然后设定阈值识别异常点。适用于入侵检测、故障检测等场景,Python中可使用scikit-learn库实现。
26 1
|
6天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】描述K-means算法的步骤
【5月更文挑战第11天】【机器学习】描述K-means算法的步骤
|
6天前
|
机器学习/深度学习 人工智能 算法
【AI 初识】描述遗传算法概念
【5月更文挑战第2天】【AI 初识】描述遗传算法概念
|
6天前
|
搜索推荐 算法 Python
用伪代码描述冒泡排序算法及其实现
用伪代码描述冒泡排序算法及其实现
44 0
|
6天前
|
人工智能 自然语言处理 算法
算法01-算法概念与描述
算法01-算法概念与描述
|
6天前
|
消息中间件 算法 JavaScript
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
43 0
|
6天前
|
监控 算法 Java
垃圾回收机制与性能调优:描述Java虚拟机(JVM)的垃圾回收算法,并解释为什么需要这些算法。如何使用Java内存分析工具(如VisualVM、JConsole或MAT)来识别和解决内存泄漏问题?
垃圾回收机制与性能调优:描述Java虚拟机(JVM)的垃圾回收算法,并解释为什么需要这些算法。如何使用Java内存分析工具(如VisualVM、JConsole或MAT)来识别和解决内存泄漏问题?
34 1
|
5月前
|
算法 Java
算法和算法的描述不匹配
算法和算法的描述不匹配
29 1
|
8月前
|
算法 C语言
树的知识网络(数据结构与算法分析 C语言描述第4章)
树的知识网络(数据结构与算法分析 C语言描述第4章)
32 0
|
8月前
|
算法 C语言
散列 知识树状图(数据结构与算法分析 C语言描述)
散列 知识树状图(数据结构与算法分析 C语言描述)
47 0