合并Pascal的排序示例

时间:2015-04-08 12:57:01

标签: arrays sorting merge mergesort turbo-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 ]

那我怎么能这样做?

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

1 个答案:

答案 0 :(得分:3)

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

你需要做什么(你应该自己写的代码......)

  1. 创建一个足以容纳N和M

  2. 元素的数组
  3. 对于目标数组中的每个位置,取最小的N和M值。您找到的最小值如下:

    一个。如果没有N的元素,则取M

    的最小元素

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

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

  4. 由于数组已经排序,因此您可以确切地知道 N M 的最小元素位于哪个位置。