• ベストアンサー

バケット法による文字列ソート

sgwjnの回答

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.3

そもそも、バケットソートは有限個の整数(ここ重要)に対して用いるアルゴリズムです。 課題で文字列のソートにバケットソートを使用するように指定してあるならば、理解に苦しみますね。

関連するQ&A

  • 文字列をソートする方法

    数値をソートする方法にはバブルソートやクイックソートなどがあり アルゴリズムは分かるのですが 文字列を五十音順にソートしたい場合にはどのようにしたら良いですか? 検索をかけてみたのですが、大抵プログラミング言語に備わったsortの方法が紹介されており 自分で処理を行う方法については書かれていません。 ExcelのSort機能を使わない方法で教えてください。

  • 数字文字列のソート方法

    文字列に数字を含むデータのソートを行うプログラムを C言語で作成したいのですが、どうすれば良いでしょうか? 具体的に言うと、a12、a2、a10という順序で並んでいる データを昇順にソートした場合にa10、a12,a2というように ソートせず、ちゃんとa2,a10,a12とソートされるように したいのですが、簡単にできるものでしょうか? 質問がわかりにくいかもしれないのですが、どうかご回答をお願いします。

  • 文字列

    C言語初心者です。プログラムについて質問なのですが、テキストファイルからある文字列(アルファベットではなく日本語)を探すにはどのようにすればいいのですか?

  • 複数の文字列をソートするプログラム

    現在、Cで複数の文字列をソートするプログラムを作っているのですが、どういう流れで考えればいいのか思いつかず困っています。 どなたかご教授お願いします。

  • 文字列3次元配列のソート(複数キー)について教えてください

    皆様こんにちは。 ソートについて悩んでおります。 以下の様な表イメージで配列を持っており (実際は要素数は動的に変わります) char AAA[10000][20][10]; /*(10000行20列10文字)*/ これを列毎のキーで昇順/降順と並び替えるプログラムを Cにて実現させたいのですが 検索して調べても2次元はよく載っているのでが、 複数列となるとなかなか無くて、お手上げ状態です。 ・qsortは使えない。 ・安定するソート法にてやらないといけなさそう というのはなんとなく理解できるのですが..... 良い方法をご存知の方いらっしゃいましたら、よろしくお願います。

  • TextBoxに入力された文字列のソート

    TextBoxに入力された文字列のソート TextBoxに入力された文字列のソート 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べた表形式の入力フォームがあり、1列目のTextBox(番号…1,4、7、10、13)に入力された文字列(数値)を基準に、昇順にソートし、行ごと入れ替えるプログラムを作りたいのですが、TextBoxを利用したソートの参考になるものが見つからず息詰まっています。どなたかサンプルや参考になるサイトがあれば、教えてください。 ###入力フォーム### 1  あああ あああ 3  ううう ううう 2  いいい いいい 5  おおお おおお 4  えええ えええ ###実際に出したい結果### 1  あああ あああ 2  いいい いいい 3  ううう ううう 4  えええ えええ 5  おおお おおお

  • 「ポインタのポインタ」を使った文字列のソート方法?

    初めて質問を投稿させていただきます。 どうぞよろしくお願いします。 現在、C言語の勉強として、 「ポインタのポインタ」を使って「コマンドラインから入力された複数の文字列を昇順にソートして表示するプログラム」 を作っているのですが、 (main関数とソート用関数は分け、出力処理はmainの中でやります) 引数として何を渡せばいいのか、またソートで何を比較して、何を入れ替えれば良いのか、考えれば考えるほど混乱してしまいます。 (過去の質問も一通り調べてみたつもりですが、解決の手がかりとなるものが見つかりませんでした) それで、どうコーディングすればいいのかを解説して頂きたいのですが、 投稿できる文字数が限られているという事なので、私が未熟なりに作ったプログラムを、見て頂くに必要と思われる部分のみ載せさせて頂きます。 int main(int argc , char** argv) { int i = 0; /* カウンタ */ sort(argc-1,argv+1);/* sort関数 */ for(i = 1 ; i < argc ; i++) /* 出力ループ */ { printf("%s\n",*(argv+i)); /* ソート後文字列出力 */ } return 0; } /* main関数ここまで */ void sort(int sargc,char** sargv) { int i1 = 0; /* ソート用カウンタ・一時領域 */ int i2 = 0; char* temp = NULL; for(i1 = 0 ; i1 < sargc - 1 ; i1++) { for(i2 = i1 + 1 ; i2 < sargc ; i2++) { if(*(sargv + i1) < *(sargv + i2)) { temp = *(sargv + i1); /* 入れ替え */ *(sargv + i1) = *(sargv + i2); *(sargv + i2) = temp; } } } return; } } なお、実行結果は、例えば、 「実行ファイル名 suzuki tanaka satou」 と入力すれば、 satou suzuki tanaka と出力されるようにしたいと考えています。 どうぞよろしくお願いします。

  • perlで文字列の大きい順にソートするプログラムが書きたいのですが、サ

    perlで文字列の大きい順にソートするプログラムが書きたいのですが、サンプルになるような、(てか、どこかにありそうなプログラムだと思うのですが、なければ自分で書きますが)ものを教えてください。検索しましたが、良いのが見つかりませんでした・・・。

    • ベストアンサー
    • Perl
  • 文字列の圧縮・復元アルゴリズムで困っています

    昔専門学校でやったけれど完全に忘れてしまっている文字列圧縮・復元の アルゴリズムについて教えて頂きたいのです。 仕様としては文字列「AAAABBBCCDDDDDEF」と並んでいた場合に圧縮を 実行すると「A4B3C2D5EF」と文字列を圧縮し、復元の場合はこの文字列を元に 圧縮前の文字列「AAAABBBCCDDDDDEF」にするといった感じのものです。 C言語かC#言語で答えて頂けるとありがたいです。

  • 文字列探索アルゴリズム(Aho Corasick法)をC言語で組みたい

    はじめまして。 標題のとおり、 文字列探索アルゴリズム(Aho Corasick法)をC言語で組みたいと考えています。 簡単なコード例か、どこか情報元はありませんでしょうか? 文字列「あかさたなはまやらわ」から キーワード「あか」・「たな」を探して 出力として、 「あか」…インデックス0 「たな」…インデックス3 となるようなイメージのプログラミングです。 詳しい方がおりましたら、何卒ご教授お願い致します。