- 締切済み
ヒープソート
c言語 でランダムに文字を出力し、 それをヒープソートして昇順し、ならべかえる簡単なプログラムを教えていただけませんか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.3
> ヒープソートまではできますが、それを配列に代入し、またソートし、配列に…といったものです。 ヒープソートを行なって、ソート済みのデータが配列に入っている状態で、 それをまたソートすることにどういった意味があるのでしょうか。
- arain
- ベストアンサー率27% (292/1049)
回答No.2
禁止事項の丸投げに該当しそうなのでアドバイスだけ まず、質問事項の中で何がわかりませんか? ・C言語で「ランダム」を作成する方法 ・「文字を出力」の意味 ・「ヒープソート」の意味がわからない ・「出力したものをソート」するための領域の確保の仕方 ・その他 全てが分からないということはないと思います。 プログラムは「細かい機能の組み合わせ」です。 まずはどういった機能が必要かを考え、その機能の実現方法としてどのようなソースを記述するかを考えます。 質問文では上記を怠っていると判断できるため「丸投げ」と解釈します。
質問者
お礼
ヒープソートまではできますが、それを配列に代入し、またソートし、配列に…といったものです。 >・「出力したものをソート」するための領域の確保の仕方
- R32C
- ベストアンサー率39% (115/290)
回答No.1
簡単でないかもしれせんが、 TOPPERS/JSP というμITRONというOSでは、 タイムイベント処理の並べ替えをヒープソートを 使っています。 kernel\time_event.c time_event.h にその処理が書かれています。 ダウンロードして、解凍して見てみてはいかがでしょうか
質問者
お礼
わかりました。 ダウンロード解凍してみます
お礼
根に最大値を持っていって、それを昇順にソートする方法がいまいちわからなく… ヒープソートした配列とは別に空の配列を持って ヒープソートした根にある最大値を空の配列の後尾のほうに持っていくのかと思ってまして…