考研数据结构——排序(三)直接插入排序、折半插入排序、希尔排序、二路归并排序

本文深入讲解了多种排序算法,包括直接插入排序、折半插入排序、希尔排序和二路归并排序。阐述了每种算法的基本原理,如直接插入排序通过逐个元素比较并插入已排序序列,折半插入排序利用折半查找提高效率,希尔排序通过增量排序预处理,以及二路归并排序的递归拆分与合并思想。

直接插入排序

(升序)
理解:从左到右扫描,每趟将一个待排序的关键字按照其值的大小插入到已经拍好的部分有序序列的适当位置上。获得待插入的数字后,和有序序列从右到左比较,直到找到一个比它小的关键字然后插入在这个关键字后面。如果没有比它小的,则插入在最前面。
插入排序特点:一趟排序后并不能保证有一个关键字到达最终的位置。

折半插入排序

(升序)
理解:使用折半查找法来找插入位置。与直接插入排序的外在差别只有查找插入位置的方法不同。

希尔排序

(升序)
理解:通过不同的增量使序列基本有序后,最后通过增量1进行一次直接插入排序。通过增量分成几个子序列,子序列里面先自己排序,每隔n个增量(包括第一个数本身)放进一个子序列。

二路归并排序

理解:将原始序列看成是n个只含有一个关键字的子序列,必定有序。然后每两个子序列归并为一个,归并的同时进行排序。得到了新的二元组子序列,再归并成四元组……直到最后合成一个序列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值