解説
「マージ」(merge)は、複数のファイルやデータ、プログラムなどを1つにまとめることです。大量の情報を扱うコンピューターの作業では、ばらばらに作成された内容を、ひとまとめにすることがよくあります。
また、マージするデータに順序がある場合は、マージアルゴリズムによって、順序の整合性を保つように統合することも多いです。「先頭が最も小さい値」などのルールで、複数のデータ列から順にデータを取り出していくことで、マージ後のデータを作ります。
マージソートと呼ばれる並べ換えのアルゴリズムでは、この方法を使い、小さく分割したデータをマージしていくことでソートを行います。
サンプル
「マージ」のサンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「マージ」のサンプル</title>
<style> #output { font-size: 32px; } </style>
</head>
<body>
<pre id="output"></pre>
<script>
window.addEventListener('DOMContentLoaded', e => {
// 配列
const a = [3, 7, 11, 13];
const b = [6, 8, 10, 14];
const c = [];
// 記録用変数と関数
const el = document.querySelector('#output');
const record = () => el.textContent += `a: ${a}\nb: ${b}\nc: ${c}\n\n`;
// マージの実施
while(a.length || b.length) {
record();
if (a.length === 0) { c.push(b.shift()); continue; }
if (b.length === 0) { c.push(a.shift()); continue; }
if (a[0] <= b[0]) {
c.push(a.shift());
} else {
c.push(b.shift());
}
}
record();
});
</script>
</body>
</html>
a: 3,7,11,13 b: 6,8,10,14 c: a: 7,11,13 b: 6,8,10,14 c: 3 a: 7,11,13 b: 8,10,14 c: 3,6 a: 11,13 b: 8,10,14 c: 3,6,7 a: 11,13 b: 10,14 c: 3,6,7,8 a: 11,13 b: 14 c: 3,6,7,8,10 a: 13 b: 14 c: 3,6,7,8,10,11 a: b: 14 c: 3,6,7,8,10,11,13 a: b: c: 3,6,7,8,10,11,13,14
