- ベストアンサー
バケット法による文字列ソート
バケット法のアルゴリズムを用いて、入力した任意の文字列 (例) "tanaka" "yamashita" "suzuki" "yamamoto" を、 "suzuki" "tanaka" "yamamoto" "yamashita" といった具合にアルファベット順にソートするプログラムについて、 バケット法のアルゴリズム自体は理解しているのですが、それをいざプログラムにするというと、構造がイマイチ思いつきません。 C言語でバケット法を用いて文字列のソートを行うプログラムを、 具体的に、どなたか教えてくださらないでしょうか? 初歩的な質問ですみません。一応、C言語の基本的なことについては 大体理解しているつもりですが、まだまだC言語初心者のため、 なるべく簡単なプログラムを作成していただければ幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
学校の課題だというのに > なるべく簡単なプログラムを作成していただければ幸いです。 とか > 参考として完成形のプログラムを教えていただけないでしょうか? とか堂々と書いちゃまずいでしょ。 そもそもバケットソートの場合 欠点は、取りうる値の種類mに対応するバケツが必要な点である。仮にキーが32ビット整数という以外に事前情報がないデータ列をソートする場合、約43億個のバケツが必要にある。長さに制限のない可変長の文字列の場合は、もはや有限個のバケツでは対応できない。この欠点は、基数ソートと組み合わせることで回避できる場合もある。 バケットソート - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%82%BD%E3%83%BC%E3%83%88 という特性があるので、提示されている条件だけでは プログラムにしようがないような気もしますけど? #適当に仮定を置けば別ですが
補足
お早い回答ありがとうございます。 フローチャートについてですが、自分でも一応考えています。 なので全体の流れも把握しているつもりなのですが、漠然とした 考えしか浮かばず、プログラムに書き起こす事ができません。 時間があれば自分でもう少し考えたいところなのですが、 大学の授業の課題になっているものなので、提出まで時間があまりありません。 参考として完成形のプログラムを教えていただけないでしょうか? 自分勝手な注文で申し訳ないですが、お答えいただければ幸いです。