我的老师给了我一份关于如何在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 ]
那么我该怎么做呢?
谁能通过简单的编码示例向我解释这个合并排序算法?
我的老师给了我一份关于如何在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 ]
那么我该怎么做呢?
谁能通过简单的编码示例向我解释这个合并排序算法?
您的老师是个聪明人,实际上您需要了解合并排序如何合并两个已排序的数组。这就是合并排序的工作原理,它将问题拆分,直到有两个已经排序的数组,然后将这些数组合并为一个排序数组。将重复此合并,直到对整个数组进行排序。
这就是你需要做的(你应该自己写的代码......)
创建一个足够大的数组来容纳 N 和 M 的元素
对于目标数组中的每个位置,取 N 和 M 中最小的剩余值。你找到的最小的值是这样的:
一个。如果N中没有元素,取M中最小的元素
湾。如果M中没有元素,取N中最小的元素
C。否则比较 N 和 M 的最小元素并取较小的元素。
因为数组已经排序,所以您确切地知道在哪个位置可以找到N和M的最小元素。