Pascal 的合并排序示例

Merge Sort Example for Pascal

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

One of the arrays is named as N and sorted as ASCENDING..

Other array named as M and sorted as DESCENDING.

它们是预定义的,他要我合并排序这两个数组。

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

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

Merge Sort [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

那我该怎么做呢?

任何人都可以通过简单的编码示例向我解释这个 合并排序 算法吗?

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

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

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

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

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

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

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

因为数组已经排好了序,所以你很清楚NM的最小元素在哪个位置。