插入、希尔、选择排序
排序:
一般是原地排序(In-place)
排序:默认情况下都是按非降序排序
稳定性:能保证排序过程中相等的数据的相对顺序不变
1.插入排序:(越接近有序,执行时间效率越高)
减治算法排序(直接插入排序,折半插入排序)
一共需要进行size-1次插入
插入过程:每次把无序区间的第一个数,在有序区间遍历(从后往前遍历)
1)找到合适的位置
2)搬移原有数据,为该数据腾出位置
2.希尔排序:(利用插入排序中,越接近有序,时间效率越高)
在插入排序之前做预排序(分组插排),使数据尽可能接近有序
先分组再对每组进行插入排序,分的组的个数为gap=gap/3+1;
直到gap==1退出
3.选择排序:(直接选择排序、堆排序)
减治算法
每次遍历无序区间(直接遍历、利用堆),找到无序区间的最大的数
把最大的数放到无序区间的最后边
一直选择n-1(n)数之后,数据完全有序
最重要的就是确定有序、无序区间
堆排序:
按升序的话,必须建大堆
按降序的话,必须建小堆
一般是原地排序(In-place)
排序:默认情况下都是按非降序排序
稳定性:能保证排序过程中相等的数据的相对顺序不变
1.插入排序:(越接近有序,执行时间效率越高)
减治算法排序(直接插入排序,折半插入排序)
一共需要进行size-1次插入
插入过程:每次把无序区间的第一个数,在有序区间遍历(从后往前遍历)
1)找到合适的位置
2)搬移原有数据,为该数据腾出位置
2.希尔排序:(利用插入排序中,越接近有序,时间效率越高)
在插入排序之前做预排序(分组插排),使数据尽可能接近有序
先分组再对每组进行插入排序,分的组的个数为gap=gap/3+1;
直到gap==1退出
3.选择排序:(直接选择排序、堆排序)
减治算法
每次遍历无序区间(直接遍历、利用堆),找到无序区间的最大的数
把最大的数放到无序区间的最后边
一直选择n-1(n)数之后,数据完全有序
最重要的就是确定有序、无序区间
堆排序:
按升序的话,必须建大堆
按降序的话,必须建小堆
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
芯片产业管理和营销指北(3)—— 赢得客户
zer0black
2024-06-09 14:34:09
【stars-one】 星念轻小说下载器
Stars-one
2024-06-09 14:22:28
shell编程相关的
shell腳本獲取腳本所在目錄 執行腳本的父目錄不一定是當前的工作目錄。 url=$(dirname $(readlink -f $0))
馬昌偉
2024-06-09 14:16:47
kvm链接克隆虚拟机迁移到openstack机器的实验
馬昌偉
2024-06-09 14:16:47
【Python】DQN处理CartPole-v1
Dsp Tian
2024-06-09 14:14:07
P1355 神秘大三角(凸包)
SnowLove
2024-06-09 14:13:17
前端使用 Konva 实现可视化设计器(13)- 折线 - 最优路径应用【思路篇】
xachary
2024-06-09 14:10:57
生产计划范围的扩展 - 工单的拆分与合并
kentzhang
2024-06-09 14:09:57
APS系统设计经验分享(时间推导II - 2023.09)
kentzhang
2024-06-09 14:09:57
排程过程中任务锁定的外延与内涵
kentzhang
2024-06-09 14:09:57
排程系统中关于任务优先级的需求延伸与设计构思
kentzhang
2024-06-09 14:09:57
从零手写实现 nginx-11-文件处理逻辑与 range 范围查询合并
葉止水
2024-06-09 14:02:36
nginx快速分析日志并找出攻击IP
xiaobingch
2024-06-09 13:59:16
Vue CLI 4与项目构建实战指南
Mifen
2024-06-09 13:40:15