没有合适的资源?快使用搜索试试~ 我知道了~
首页快速排序与堆排序:八大信息技术排序算法详解
快速排序与堆排序:八大信息技术排序算法详解
需积分: 50 14 下载量 95 浏览量
更新于2023-05-26
1
收藏 554KB PDF 举报
本文档总结了八大常见的排序算法,包括不稳定的排序算法和稳定的排序算法,以及它们在性能上的特点。首先,不稳定的排序算法包括快速排序、希尔排序、堆排序和选择排序,这些算法因其不同的工作方式和效率而受到关注。快速排序以其平均速度最快著称,而希尔排序则介于简单排序(如冒泡排序和选择排序)和高效排序之间。堆排序虽然所需辅助空间最少,但并不总是最快的。 对于稳定性,冒泡排序和选择排序属于稳定排序,即在排序过程中,如果两个相等的元素在原序列中的相对位置不会改变。然而,它们的时间复杂度均为O(N的平方),效率较低。相比之下,归并排序所需的辅助空间最多,但它的平均和最坏情况下的时间复杂度都是O(NlogN),适合处理大数据量。 当处理大规模数据时,推荐使用具有O(NlogN)时间复杂度的排序方法,如快速排序、堆排序或归并排序,因为它们在n较大时性能更为优秀。选择排序尽管在交换次数上有所优化,但从总体复杂度来看,依然不是最佳选择。 冒泡排序和选择排序的实现分别展示了这两种简单排序算法的基本逻辑。冒泡排序通过不断交换相邻元素使最大值逐渐“浮”到数组尾部,而选择排序则是通过遍历找到剩余部分的最大值并一次性替换当前位置的元素,减少交换次数。 总结来说,本篇文档提供了排序算法的基础知识,帮助读者理解不同算法的特点和适用场景,以便在实际开发中根据需求做出合适的选择。对于学习和理解排序算法原理以及优化性能至关重要。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10312985/bg3.jpg)
不管何种排序方式,查找比较规则都是从右到左
一般情况下, 该算法比冒泡排序快一倍,比选择排序要快一些
对于有序或者基本有序的数据,插入排序非常快,可以达到O(N)
如果数据是逆序的,那么插入排序比冒泡排序还慢
实现
#
//插入排序--由大到小
public static void insertSort(int[] arr){
int j;
int key;
for (int i = 1; i < arr.length; i++) {
key=arr[i];//key就是我们每次新摸到的牌,现在需要找到插入的位置并空出位置
j=i-1;
while (j>=0 && arr[j]<key) {//将已排好序的所有比key小的元素右移一个位置,空出一个位置,方便key插入
arr[j+1]=arr[j];
j--;
}
arr[j+1]=key;//空出位置后,然后插入
}
}
时间复杂度:O(N的平方),稳定算法
就上面三种算法比较的话,插入排序是最好的,适合小数据量。
以上三种称为简单排序算法
最优复杂度:当输入数组就是排好序的时候,复杂度为O(n),而快速排序在这种情况下会产生O(n^2)的复杂度
最差复杂度:当输入数组为倒序时,复杂度为O(n^2)
插入排序比较适合用于“少量元素的数组”
4.希尔排序希尔排序
原理:是基于插入排序的改进算法,插入排序每次移动都是一个一个移动,当逆序时候,移动次数要很多,希尔排序改进了移
动步长,可以实现大跨度移动,减少移动时间。希尔排序也叫做缩小增量排序法
将整个无序数据分割成若干小的子序列分别进行插入排序
在希尔排序开始时增量较大,分组较多,每组的记录数目少,故各组内直接插入较快,后来增量di逐渐缩小,分组数逐渐减少,
而各组的记录数目逐渐增多,但由于已经按di-1作为距离排序,使文件较接近于有序状态,所以新的一趟排序过程也较快。
在插入算法中,如果有一个最小的数在数组的最后面,用插入算法就会从最后一个位置移动到第一个,这样就会浪费很大,使
用这个改进的希尔排序可以实现数据元素的大跨度的移动。也就是这个算法的优越之处。
先取一个小于n的整数d1作为一个增量,把表的全部记录分成d1个组,所有距离为d1的倍数的记录放在同一个组中,在各组内
进行直接插入排序,然后,取第二个增量d2(<d1),重复上述的分组和排序,直至所取的dt=1,即所有记录放在同一组中进行直接
插入排序为止。
举例:要排序的数组是[3 5 4 12 45 3 -32 7 5 8 34 -4],长度为12,首先确定最大增量,增量的值选取对运行效率影响很大,这里
面有很多间隔划分算法。我们这里选择的增量为长度/2,这里=6,故开始分组 每隔6个元素一组,分组如下:第一组【3 -32】
第二组【5 7】第三组【4 5】第四组【12 8】第五组【45 34】 第六组【3 -4】,然后对每一组进行插入排序,从大到小,经过
第一次排序后,变为【3 7 5 12 45 3 -32 5 4 8 34 -4】,然后再次修改增量,这次增量要缩小,我们再次是上次增量/2=3;然后
开始第二次分组:第一组【3 12 -32 8】第二组【7 45 5 34】第三组【5 3 4 -4】,然后对每组使用插入排序,排序后合成,则
数组变为【12 45 5 8 34 4 3 7 3 -32 5 -4】,从这里可以看出,已经基本有序了。最后增量/2=1;表示不需要再分组了,对上述数
据进行一次插入排序即可。
实现
//希尔排序--由大到小
public static void shellSort(int[] arr) {
int size = arr.length;
//这层for是分组
for(int gap = size/2; gap>=1; gap /= 2) {
//这层for是对每组进行插入排序
for(int i=gap; i<size; i++) {
剩余11页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/f22287f2f5b5499585112422a9f7638e_luochao5862426.jpg!1)
静●思●行
- 粉丝: 170
- 资源: 31
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)