Pascal的合并排序示例



我的老师给了我一个关于如何在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]

那么我该怎么做呢?

有人能通过简单的编码示例向我解释一下这个合并排序算法吗?

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

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

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

  2. 对于目标阵列中的每个位置,取N和M的最小剩余值。你发现的最小值如下:

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

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

    c。否则,比较N和M中最小的元素,取较小的元素。

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

相关内容

  • 没有找到相关文章

最新更新