2011-11-09 9 views
0

だから私はこの宿題を言うていること:。マージソートや用語の定義

「b)の使用は、下表の値をソートするためにマージソート各再帰呼び出しを表示し、別の行にマージあなたは必要ありません。このタスクを実行するために2番目の配列が使用されるため、個々のスワップを表示することができます。右半分と左半分に同じ数の値がある場合、右半分にはより大きな数の値が含まれているとします。 (右回帰呼び出し)、LRC(左回帰呼び出し)、またはM(マージ)」と表示されます。 と私には、 "ステップ"の最初の列を持つテーブルが表示され、残りの列は配列またはシーケンス内の各番号の1つのスペースです。テーブルには大きな数の行があり、ソートの手順を各行に記入することができます。 [はい、私はノブです、私はこのテキスト編集ツールのテーブルを作る方法を知らないです。]

この宿題で私の問題は、教授が "左回帰呼び出し"または "右再帰呼び出し"とその "マージ"のいずれかを選択します。 私はマージソートを行う方法を知っています。私が知らないのは、各行の最初の列に記入しなければならない用語です。

私は本当に助けを必要としていますが、どこにこれが説明されているのかはウェブ上にありません。

+1

私は 'left recursive'と 'right recursive'は、リストの左と右の半分でsortを呼び出すmergesortアルゴリズムの部分を意味すると確信しています。マージソートアルゴリズムが分かっている場合、マージは明白です。 (でも、あなたの教授に尋ねることはできませんか?) – birryree

+0

ええと...しかし、それは今夜、かなり明日私はとても忙しく、私は宿題を提出することができます。 – Yokhen

答えて

0

Merge Sortrecursiveアルゴリズムであり、リスト(またはテーブル、配列、またはwhathaveyou)をほぼ同じ長さに分割することによって機能するアルゴリズムです。

したがって、値のリストを2つの部分に分割するので、1つは左部分と見なすことができ、1つは右部分と見なすことができます。その後、それらを再帰的にソートします。

LRCとRRCの参照先を知ることができますか?

+0

だから私は192837465を持っています。 これを複数の配列で再帰で分割し、最後に配列 "1 9"になります もしそれを並べ替えると、LRCかRRCでしょうか? 後で19と28をマージするときにM(マージ)またはRRCまたはLRC、あるいはそれらのすべてがありますか? それは私を混乱させるものです。 – Yokhen

+0

[この画像](http://en.wikipedia.org/wiki/File:Merge-sort-example-300px.gif)で、赤が発生しているときはいつもマージです。それ以外の場合は、RRCまたはLRCのいずれかの側に基づいています。また、[マージソートのための人間のシミュレートされた手順](http://en.wikipedia.org/wiki/File:Merge_sort_algorithm_diagram.svg)も参照してください。 – Mike

関連する問題