数据结构中的合并算法
合并算法用于将两个排序列表合并到一个列表中。可以在不同的情况下使用该算法。如果要执行合并排序,则需要将分类列表合并到更大的列表中。
方法很简单。我们使用两个列表,其中包含两个指针。第一个指针指向第一个列表中的元素,第二个指针指向第二个列表中的元素。根据它们的值,从这两个列表中取出较小的元素,然后增加该对应列表的指针。此操作将一直执行,直到其中一个列表用完。然后,将剩余的列表添加到最终合并列表的末尾。
让我们看看说明以获得更好的主意。
算法
Merge(array, left, middle, right) −
Begin nLeft := m - left+1 nRight := right – m define arrays leftArr and rightArr of size nLeft and nRight respectively for i := 0 to nLeft do leftArr[i] := array[left +1] done for j := 0 to nRight do rightArr[j] := array[middle + j +1] done i := 0, j := 0, k := left while i < nLeft AND j < nRight do if leftArr[i] <= rightArr[j] then array[k] = leftArr[i] i := i+1 else array[k] = rightArr[j] j := j+1 k := k+1 done while i < nLeft do array[k] := leftArr[i] i := i+1 k := k+1 done while j < nRight do array[k] := rightArr[j] j := j+1 k := k+1 done End
广告