再帰的な並べ替えのために意思決定ツリーを作成する方法を理解できる人がいるかどうかは疑問でした。私は、バブルソートや挿入ソートなどでそれを行う方法を理解しています。再帰的なソートになると、私はそれを描くことができません。擬似コードのようなものである場合:私は明らかにどこか間違っているつもりです再帰ソートアルゴリズムを使用した意思決定ツリー
A, B, C
yes/ \ no is length <= 1?
/ \
remove head
/ \
A B, C
yes/ \ no is length <= 1?
/ \
remove head
/ \
B C
yes/ \ no is length <= 1?
/ \
B:C
/ \
B,C C,B
| |
A:B,C A:C,B
/ \ / \
A,B,C B:A,C A,C,B C:A,B
/\ / \
B,A,C A:B,C C,A,B A:C,B
、私だけではない、かなりよ:
if length == 1
return;
else
int elem = head of array;
array tail = tail of array;
recursive sort;
if (elem <= head of sorted list)
add elem to the beginning of sorted list
else
swap elem and first element of sorted list
sort smaller list again
add elem to the beginning of sorted list
return
私の最初に考えたのは、決定木は、以下のように見えるだろうということです確かにどこに。私は正しい道にここにいますか?
ありがとうございました。
このような迅速な対応に感謝します。宿題ではない。私はアルゴリズムをよりよく理解しようとしており、私が読んでいる本は現在決定木について議論しています。この例を見つけて、それを理解しようとしています:) –