分享好友 最新资讯首页 最新资讯分类 切换频道
数据结构-排序算法
2024-12-29 00:13

一、插入排序(从小到大为例)

​ 算法思想(直接)插入排序在我看来就是一小段一小段的从前到后分段的排序。从第二个元素开始,设置下标为i,将每轮循环的第i个元素当作Key与其前面的元素做对比。找到下标j对应的arr[j]的值比Key小而arr[j+1]的值比Key大的位置,将其插入,然后继续下一次的循环直到结束。

数据结构-排序算法

​ 时间复杂度:O(n²)

 
 

二、折半插入排序(从小到大为例)

​ 算法思想:折半插入排序是插入排序基于二分法的优化。直接插入排序在每次与第i个元素前面的元素做对比的时候是顺序对比的,而在i前面的元素是排序完成后的,故只需通过二分法找到第i个元素值应该插入的位置即可。

​ 时间复杂度:O(n²)

 

三、希尔排序(从小到大

​ 算法思想:希尔排序在我看来是采用类似极限思想的对插入排序的优化。此算法设置一个间隔,间隔一般取数组长度的1/2向下取整。根据此间隔将本来的数组分组,然后在组内使用插入排序,同时减半间隔大小直到间隔为1,达到基本有序后最后一次插入排序,完成排序。

 

四、冒泡排序(从小到大

​ 算法思想:若传入的数组元素个数为n,则默认需要进行n-1趟排序。每趟排序过程中对元素两两进行比对,符合条件进行交换,将最大或最小的值向冒泡一样排序到数组一端。可设置一个类型的变量flag来判断数组是否进行了交换,若无发生交换则代表有序。

​ 时间复杂度:O(n²)

 

五、快速排序(从小到大

​ 算法思想:快排的思想就是通过设定一个基准值(一般为数组第一个值)来通过low和high两个指针来对比数组中的值确定基准值base的最终排序位置(low为低位,high为高位)。在此期间先向左移动high指针直到找到一个比基准值base小的元素,将此元素放到当前low的位置;随后开始向右移动low指针直到找到比base大的元素,再将此元素放到当前high的位置。按此规律一直进行下去直到low和high指向同一位置,即为base应该在的最终排序位置。这样就将其划分为了另外两个子表,再递归的将划分出的两个子表快排,直到low>high,即整个序列有序。

​ 时间复杂度:最好情况:O() 最坏情况:O(n²)

​ 快速排序是所有内部排序算法中平均性能最优的排序算法。

 

六、简单选择排序(从小到大

​ 算法思想:依次从数组元素中找出最小(或最大)的元素放在首位。最后只剩一个元素时不需要再对比排序 。

​ 空间复杂度:O(1) 时间复杂度:O(n²) 稳定性:不稳定

 

七、堆排序

​ 算法思想:堆排序就是将序列建立成大根堆(或小根堆)的形式,然后将堆顶(也就是数组最大值,建立成大根堆后的数组的第一个元素)与数组的最后一个元素呼互换,以此来将数组最大值放到数组的最后边。然后数组的长度减一,对前面的n-1个元素继续上面的操作,直到数组排序完成。

​ 注:大顶堆即为父节点大于左右孩子的完全二叉树,将大根堆形成的完全二叉树层序遍历即为大根堆的数组。

最新文章
AI智能写作工具:在线、USB、作业帮网站全功能汇总
随着科技的不断发展智能写作工具逐渐成为人们日常生活中不可或缺的助手。无论是在线写作、文档整理还是学术研究、文案策划智能写
2024年磁力链接软件:如何选择适合你的版本
下面给大家推荐几款好用的免费的磁力链接软件,有需要的小伙伴们来了解一下。电驴是一款基于GPL协议的P2P软件,由VeryCD开发团队
chatgpt国内如何用?(ChatGPT国内使用办法,使用指南保姆级教程在线更新)
ChatGPT国内如何用?ChatGPT国内使用办法,chatgpt国内使用方法来了。涵盖ChatGPT-4o(GPT-4o)和ChatGPT4.0(ChatGPT plus)国内
2023-2024考研同学如何做毕业设计经验指导分享
博主介绍:《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家࿰
CXCG-2型 自动测汞仪/便携式汞检测仪
鹤壁市创新仪器仪表有限公司致力于为煤质分析仪器领域提供具有国内*水平的高性价比的煤炭检测设备和煤质化验室整体解决方案,拥
2024腾讯云双十一活动:云服务器优惠价格表68元1年,超便宜!
云服务器CVMCPU内存公网带宽系统盘地域节点费用价格
DDoS攻击愈演愈烈,谈如何做好DDoS防御
  DDoS攻击是目前最常见的网络攻击方式之一,各种规模的企业包括组织机构都在受其影响。对于未受保护的企业来讲,每次DDoS攻击
408数据结构学习笔记——外部排序
目录 1.外部排序的基本概念 2.外部排序 2.1.外部排序的思想 2.2.外部排序的开销 2.3.优化——多路归并 3.败者树 4.置换选择排序
AI排版软件自编教程
1、IllustratorAI文字排版一新建画布首先,安装illustrator废话.装好后翻开软件然后,文件一一新建,在新建面板进行设置:新建文档配
Alexa排名是什么意思
  相信在使用一些seo工具(如站长工具、爱站工具)的时候都会看到一个数据那就是alexa排名数据,很多小白可能并不懂alexa排名