直接插入排序
(升序)
理解:从左到右扫描,每趟将一个待排序的关键字按照其值的大小插入到已经拍好的部分有序序列的适当位置上。获得待插入的数字后,和有序序列从右到左比较,直到找到一个比它小的关键字然后插入在这个关键字后面。如果没有比它小的,则插入在最前面。
插入排序特点:一趟排序后并不能保证有一个关键字到达最终的位置。
折半插入排序
(升序)
理解:使用折半查找法来找插入位置。与直接插入排序的外在差别只有查找插入位置的方法不同。
希尔排序
(升序)
理解:通过不同的增量使序列基本有序后,最后通过增量1进行一次直接插入排序。通过增量分成几个子序列,子序列里面先自己排序,每隔n个增量(包括第一个数本身)放进一个子序列。
二路归并排序
理解:将原始序列看成是n个只含有一个关键字的子序列,必定有序。然后每两个子序列归并为一个,归并的同时进行排序。得到了新的二元组子序列,再归并成四元组……直到最后合成一个序列。
本文深入讲解了多种排序算法,包括直接插入排序、折半插入排序、希尔排序和二路归并排序。阐述了每种算法的基本原理,如直接插入排序通过逐个元素比较并插入已排序序列,折半插入排序利用折半查找提高效率,希尔排序通过增量排序预处理,以及二路归并排序的递归拆分与合并思想。
903

被折叠的 条评论
为什么被折叠?



