排序算法简介

devtools/2024/11/13 10:32:47/

直接插入排序:

将第一个元素视为已排序的序列,其余元素视为未排序序列。 ‌

逐个处理‌:从第二个元素开始,逐个将当前元素插入到已排序序列的适当位置,直到所有元素都被插入。 ‌

插入过程‌:对于每个待插入的元素,通过与已排序序列中的元素进行比较,找到合适的插入位置,并将该位置及之后的元素向后移动,为新元素腾出空间。

直接选择排序:

在所有记录中选出最小的记录,把它与第1个记录交换,然后在剩余的记录内选出最小的记录与第2个交换......依次类推

冒泡排序:

第一个元素和第二个元素比较,第二元素和第三元素比较,第三和第四......,以此类推,一轮结束大的冒泡了。第二轮开始,还是从第一元素和第二元素开始比较。

希尔排序:

将待排序的数组分成若干个子序列,每个子序列使用插入排序进行排序,然后逐步减小增量,直到增量为1时完成整个数组的排序

快速排序:

采用分治策略,通过选取一个“基准”元素,将待排序的数组分为两个子数组,一个子数组的元素都比基准元素小,另一个子数组的元素都比基准元素大,然后对这两个子数组递归地进行快速排序,从而达到对整个数组排序的目的‌

堆排序:利用大小堆的数据结构

归并排序:

基于分治策略,从中间划分成左右数组,左右数组再划分直到1个元素,然后划分的元素排序好,再原路返回的合并


http://www.ppmy.cn/devtools/132897.html

相关文章

华为鸿蒙应用开发

开发-HarmonyOS NEXT鸿蒙应用开发平台-华为开发者联盟 设置中文:DevEco Studio中文汉化配置_devecostudio设置中文-CSDN博客

electron 中 contextBridge 作用

1. 安全地实现渲染进程和主进程之间的通信 在 Electron 应用中,主进程和渲染进程是相互隔离的,这是为了安全和稳定性考虑。 然而,在很多情况下,渲染进程需要访问主进程中的某些功能,例如系统级别的操作或者一些应用级…

如何防止苹果MacOS进入休眠状态

前言 远程控制的时候,发现MacOS已经进入了休眠状态。如何设置MacOS,防止其进入休眠状态,这样才能远程控制。 1、进入系统偏好设置 显示器自动关闭了不要紧。只要操作系统不进入休眠就可以。

python中常见的8种数据结构之一列表

列表是Python中最常见的数据结构之一。它是一种有序的集合,可以包含不同类型的数据。 以下是列表的一些特点和常见操作: 1. 定义列表:可以使用方括号([])来定义一个空列表,也可以在方括号中添加元素来初始…

MySQL记录锁、间隙锁、临键锁(Next-Key Locks)详解

行级锁,每次操作锁住对应的行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。 应用在InnoDB存储引擎中。InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁。 对于行…

基于python多准则决策分析的汽车推荐算法设计与实现

摘要 随着汽车市场的快速发展和消费者需求的多样化,汽车选择变得愈加复杂。为了帮助消费者在众多汽车选项中做出明智的决策,基于多准则决策分析(MCDA)的汽车推荐算法应运而生。本研究旨在设计和实现一种基于 Python 的汽车推荐系…

C# 中 LibraryImport 和 DllImport有什么不同

libraryimport 和 dllimport 是两个与动态链接库(DLL)相关的术语,它们在不同的编程语言和上下文中有不同的含义和用途。 在 C# 中,DllImportAttribute 是一个特性,用于指示一个方法声明是作为对非托管 DLL 中函数的 P…

缓存、注解、分页

一.缓存 作用:应用查询上,内存中的块区域。 缓存查询结果,减少与数据库的交互,从而提高运行效率。 1.SqlSession 缓存 1. 又称为一级缓存,mybatis自动开启。 2. 作用范围:同一…