我的老师给了我一些关于如何合并排序 Pascal 中的两个数组的作业。
其中一个数组命名为 N ,并按 ASCENDING 排序..
其他名为 M 的数组,并按 DESCENDING 排序。
它们是预先定义的,他希望我合并排序这两个数组。
N [ 2,4,5,8,10 ]
M [ 9,7,6,3,1 ]
合并排序[ 1,2,3,4,5,6,7,8,9,10 ]
那我怎么能这样做?
有人可以通过简单的编码示例向我解释这个合并排序算法吗?
答案 0 :(得分:3)
你的老师是个聪明人,实际上你需要了解mergesort合并两个已排序的数组的作用。那就是mergesort如何工作,它将问题分解,直到有两个已排序的数组,然后它将这些数组合并到一个已排序的数组。将重复此合并,直到整个数组被排序。
你需要做什么(你应该自己写的代码......)
创建一个足以容纳N和M
对于目标数组中的每个位置,取最小的N和M值。您找到的最小值如下:
一个。如果没有N的元素,则取M
的最小元素湾如果没有M的元素,则取N的最小元素
℃。否则比较N和M的最小元素并取较小的元素。
由于数组已经排序,因此您可以确切地知道 N 和 M 的最小元素位于哪个位置。