排序-合并算法

合并排序是一种排序算法 它包括将两个列表串联为一个。其原理基于方法 deviser pour régner。排序合并的优点是两个列表同时合并,因此我们可以使用 threads 进行实现。

该算法以其在复杂性(时间和内存)和对列表排序方面的效率而闻名:
  • 我们将数据切成相等的两个部分。
  • 我们对每个的数据进行排序部分(我们拆分每个部分,算法变为递归).
  • 我们合并两个部分。
我们递归地将起始数组货币化为两个子数组,直到数组只包含一个元素。一旦元素彼此独立排序,从那时起,回溯 开始,我们将合并子表合二为一,直到你得到排序的起始板。合并由连续的比较组成。

示例

假设我们要对下表进行排序: [ 38, 27 ,43, 3, 9, 82, 10]

在

算法


TriFusion 算法(T,左,右);
  T:值表;
  left,right:整数;
  center:整数;
页首  
  IF (左<右) THEN
     ←中心(左+右)/ 2;
     TriFusion(T,左,中);
     TriFusion(T,中 + 1,右);
     MERGE(T, 左, 中, 右);
  FSI
FIN.