C言語のプログラミングに関する質問です。ヒープソートを実行したいのですが、上手くいきません。

C言語関連17閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

わかりやすくコメントも書いて下さってありがとうございました!! 理解できました。 初めのコードだと警告が出ていたのですが無くなりました!!

お礼日時:10/28 17:31

その他の回答(1件)

0

ダウンヒープでは、配列の先頭にダミー領域が1つ必要です。 このため、以下の様な変更をしてください。 ・配列の要素を1増やす 誤:int sort[N]; 正:int sort[1+N]; ・Hpsort()内のwhile文について、終了条件の値を1増やす (「root >= 0」→「root >= 1」、「leaf> 0」→「leaf>1」) ・sort[1]~sort[100]に1~100の乱数が入るように変更する ・表示、比較する範囲を「0~99」から「1~100」に変更する