2

我的老师给了我一份关于如何在Pascal中对两个数组进行合并排序的作业。

其中一个数组被命名为N并排序为ASCENDING ..

其他名为M并按DESCENDING排序的数组。

它们是预定义的,他希望我对这两个数组进行合并排序。

N [ 2, 4, 5, 8, 10 ]

米 [ 9, 7, 6, 3, 1 ]

合并排序 [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

那么我该怎么做呢?

谁能通过简单的编码示例向我解释这个合并排序算法?

4

1 回答 1

4

您的老师是个聪明人,实际上您需要了解合并排序如何合并两个已排序的数组。这就是合并排序的工作原理,它将问题拆分,直到有两个已经排序的数组,然后将这些数组合并为一个排序数组。将重复此合并,直到对整个数组进行排序。

这就是你需要做的(你应该自己写的代码......)

  1. 创建一个足够大的数组来容纳 N 和 M 的元素

  2. 对于目标数组中的每个位置,取 N 和 M 中最小的剩余值。你找到的最小的值是这样的:

    一个。如果N中没有元素,取M中最小的元素

    湾。如果M中没有元素,取N中最小的元素

    C。否则比较 N 和 M 的最小元素并取较小的元素。

因为数组已经排序,所以您确切地知道在哪个位置可以找到NM的最小元素。

于 2015-04-09T06:59:03.113 回答