アプリ版:「スタンプのみでお礼する」機能のリリースについて

バケット法のアルゴリズムを用いて、入力した任意の文字列
(例)
"tanaka"
"yamashita"
"suzuki"
"yamamoto"
を、
"suzuki"
"tanaka"
"yamamoto"
"yamashita"
といった具合にアルファベット順にソートするプログラムについて、
バケット法のアルゴリズム自体は理解しているのですが、それをいざプログラムにするというと、構造がイマイチ思いつきません。

C言語でバケット法を用いて文字列のソートを行うプログラムを、
具体的に、どなたか教えてくださらないでしょうか?

初歩的な質問ですみません。一応、C言語の基本的なことについては
大体理解しているつもりですが、まだまだC言語初心者のため、
なるべく簡単なプログラムを作成していただければ幸いです。

A 回答 (3件)

学校の課題だというのに


> なるべく簡単なプログラムを作成していただければ幸いです。
とか
> 参考として完成形のプログラムを教えていただけないでしょうか?
とか堂々と書いちゃまずいでしょ。
そもそもバケットソートの場合

欠点は、取りうる値の種類mに対応するバケツが必要な点である。仮にキーが32ビット整数という以外に事前情報がないデータ列をソートする場合、約43億個のバケツが必要にある。長さに制限のない可変長の文字列の場合は、もはや有限個のバケツでは対応できない。この欠点は、基数ソートと組み合わせることで回避できる場合もある。

バケットソート - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%B1% …

という特性があるので、提示されている条件だけでは
プログラムにしようがないような気もしますけど?
#適当に仮定を置けば別ですが
    • good
    • 0

そもそも、バケットソートは有限個の整数(ここ重要)に対して用いるアルゴリズムです。


課題で文字列のソートにバケットソートを使用するように指定してあるならば、理解に苦しみますね。
    • good
    • 0

>バケット法のアルゴリズム自体は理解している


ならばフローチャートを紙に書きましょう。
そうすれば、今回のソートにどの様な変数、
どの様な機能を持った関数が必要か明確になると思います。

この回答への補足

お早い回答ありがとうございます。
フローチャートについてですが、自分でも一応考えています。
なので全体の流れも把握しているつもりなのですが、漠然とした
考えしか浮かばず、プログラムに書き起こす事ができません。
時間があれば自分でもう少し考えたいところなのですが、
大学の授業の課題になっているものなので、提出まで時間があまりありません。

参考として完成形のプログラムを教えていただけないでしょうか?

自分勝手な注文で申し訳ないですが、お答えいただければ幸いです。

補足日時:2007/07/02 12:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!