本文主要是介绍考研系列-数据结构第八章:排序(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、归并排序
1.算法思想
基本思想是将一个数组分成两半,对这两半分别进行排序,然后将排序好的两半合并在一起。这个过程一直递归进行,直到划分的子数组只包含一个元素(此时认为该元素已经排序好),然后开始合并过程,直到合并为一个完整的、排序好的数组。
2.具体步骤
(1)分解
将数组分解成两个较小的子数组,直到子数组的大小为1。
(2)递归进行排序并合并
递归地对子数组进行排序,并将已排序的子数组合并成一个大的有序数组,直到合并为1个完整的数组。
(3)合并/归并
合并两个已排序的数组段。在这个过程中,比较两个数组段的最前面的元素,选择较小的元素放入到新的数组中,然后移动指针到下一位置,继续比较,直到一个数组段的所有元素都被复制。如果某个数组段还有剩余的元素,则将它们直接复制到新数组的末尾。
归并有二路、四路等等的多路归并。

这篇关于考研系列-数据结构第八章:排序(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!