私たちは、d-ary max-heap(各ノードが最大d個の子を持つヒープ)を使ってn個の数値の配列をソートするcプログラムを書くという割り当てを与えられました。プログラムは、ユーザーにdの値、2と配列のサイズの間の値を入力するように要求する必要がありました。私は自分のプログラムをチェックしていたのですが、誤ってdの値として1を入力しました。そして、何らかの形でアルゴリズムは1-aヒープを使って配列を正しくソートすることに成功しました。1-aryヒープソート?
どうすれば可能ですか? 1-aryヒープはヒープでもリストのようなものではなく、すべてのノードには1つの子しかありません。どのようにこの並べ替えが起こることができるか誰も説明できますか?
実際に何が起こったかは、挿入の並べ替えの非効率な変形ですか? – Bob
これは標準的な挿入ソートであり、ヒープ内のすべての要素を「n」から「n-1」に移動する一連の「ポップ」操作が続きます。 –