• 締切済み

定番アルゴリズムのメリット・デメリットについて

定番アルゴリズムとして以下のアルゴリズムが挙げられますが、 (1)ユークリッドの互徐法 (2)エラトステネスのふるい (3)線型探索 (4)二分探索 (5)ハッシュ探索 (6)バブル・ソート (7)クイック・ソート ↑これらの各々のアルゴリズムのメリット・デメリットについてをそれぞれ教えてください。 よろしくお願いします。

みんなの回答

  • asciiz
  • ベストアンサー率70% (6621/9384)
回答No.6

仮にもプログラミングを学ぼうとしているのならば、言葉は正しく解釈しましょう。 >私はその特徴のメリット・デメリットについて教えてほしいのです。 「Xの特徴を知りたい」というのならば、わかります。 しかし、「Xのメリット」という場合には、X単体で論ずることはできません。 「メリット」は日本語で言えば「優位点」でしょう? それは、何かと何かを比較して、、優劣があるからこそ「優位」と言えるんです。 オンリーワンの場合、「メリット」は存在しません。 一体どういう意味で「メリット(あるいはデメリット)」と言われてておられるのでしょうか。 >アルゴリズム同士を比較することではありません。 >アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。 >なぜ教えることができないのですか? 比較しなければ「メリット・デメリット」はあり得ません。 おそらく言葉に対する誤解があるように思います。 あなたの考える「メリット・デメリット」とは、どういうものなのか、教えて下さい。

taritarianime
質問者

お礼

>仮にもプログラミングを学ぼうとしているのならば、言葉は正しく解釈しましょう。 どこが、正しく解釈をしてないのですか? >「メリット」は日本語で言えば「優位点」でしょう? >それは、何かと何かを比較して、、優劣があるからこそ「優位」と言えるんです。 >オンリーワンの場合、「メリット」は存在しません。 >一体どういう意味で「メリット(あるいはデメリット)」と言われてておられるのでしょうか。 なぜそう思ったのでしょうか? >アルゴリズム同士を比較することではありません。 >アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。 >なぜ教えることができないのですか? なぜそう思ったのでしょうか?

taritarianime
質問者

補足

>仮にもプログラミングを学ぼうとしているのならば、言葉は正しく解釈しましょう。 どこが、正しく解釈をしてないのですか? >「メリット」は日本語で言えば「優位点」でしょう? >それは、何かと何かを比較して、、優劣があるからこそ「優位」と言えるんです。 >オンリーワンの場合、「メリット」は存在しません。 >一体どういう意味で「メリット(あるいはデメリット)」と言われてておられるのでしょうか。 なぜそう思ったのでしょうか? >アルゴリズム同士を比較することではありません。 >アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。 >なぜ教えることができないのですか? なぜそう思ったのでしょうか?

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.5

> なぜ教えることができないのですか? あなたが、「自動車のメリット・デメリット」に対して答えられないのと同じ理由です。 強いて言えば、 (1) メリット:最大公約数を求めることが出来る。デメリット:最大公約数を求めたいのでなければ無用 (2) メリット:素数を求めることが出来る。デメリット:素数を求めたいのでなければ無用 (3)~(7)メリット:ソートすることができる。デメリット:ソートしたいのでなければ無用

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.4

>すいません。(1)~(7)のそれぞれのメリット・デメリットについて挙げてほしいのです。 >他のアルゴリズムと比べないでください。 2つ以上のものを比べないと、メリット・デメリットという言葉が意味をなしませんが? 「自動車のメリットデメリット」聞かれて答えられますか?徒歩と比べるのか、飛行機と比べるのかで、挙げる物が違ってきますよ。

taritarianime
質問者

お礼

>すいません。(1)~(7)のそれぞれのメリット・デメリットについて挙げてほしいのです。 >他のアルゴリズムと比べないでください。 >2つ以上のものを比べないと、メリット・デメリットという言葉が意味をなしませんが? 「自動車のメリットデメリット」聞かれて答えられますか?徒歩と比べるのか、飛行機と比べるのかで、挙げる物が違ってきますよ。 なんでそう思ったのですか?何度も言いますが、アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。なぜ教えることができないのですか?

taritarianime
質問者

補足

>すいません。(1)~(7)のそれぞれのメリット・デメリットについて挙げてほしいのです。 >他のアルゴリズムと比べないでください。 >2つ以上のものを比べないと、メリット・デメリットという言葉が意味をなしませんが? 「自動車のメリットデメリット」聞かれて答えられますか?徒歩と比べるのか、飛行機と比べるのかで、挙げる物が違ってきますよ。 なんでそう思ったのですか?何度も言いますが、アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。なぜ教えることができないのですか?

  • asciiz
  • ベストアンサー率70% (6621/9384)
回答No.3

「メリット・デメリット」は、「ある結果を求める場合に」「どういうアルゴリズムを採用するか」によって決まってくるものです。 アルゴリズムそれぞれについての特徴はありますが、アルゴリズム自体に対して「メリット・デメリット」なんて論ずることはできません。 また、ご質問にある7つのうち、(3)と(4)はデータ検索に関する手法、(6)と(7)は並べ替えに関する手法ということで比較できますが、それ以外は目的が違うため、アルゴリズム同士を比較することはできず、「メリット・デメリット」を言うことはできません。

taritarianime
質問者

お礼

>アルゴリズムそれぞれについての特徴はありますが、アルゴリズム自体に対して「メリット・デメリット」なんて論ずることはできません。 私はその特徴のメリット・デメリットについて教えてほしいのです。 >また、ご質問にある7つのうち、(3)と(4)はデータ検索に関する手法、(6)と(7)は並べ替えに関する手法ということで比較できますが、それ以外は目的が違うため、アルゴリズム同士を比較することはできず、「メリット・デメリット」を言うことはできません。 アルゴリズム同士を比較することではありません。アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。なぜ教えることができないのですか?

taritarianime
質問者

補足

>アルゴリズムそれぞれについての特徴はありますが、アルゴリズム自体に対して「メリット・デメリット」なんて論ずることはできません。 私はその特徴のメリット・デメリットについて教えてほしいのです。 >また、ご質問にある7つのうち、(3)と(4)はデータ検索に関する手法、(6)と(7)は並べ替えに関する手法ということで比較できますが、それ以外は目的が違うため、アルゴリズム同士を比較することはできず、「メリット・デメリット」を言うことはできません。 アルゴリズム同士を比較することではありません。アルゴリズム一つ一つのメリット・デメリットについて教えてほしいのです。なぜ教えることができないのですか?

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.2

(1)(2) それぞれ何と比べての話ですか? (3)(4)(5)の比較 (3)コードが短い、データ件数が多いと遅い (4)普通、そこそこ速い (5)ハッシュ関数をうまく作らないと意味が無い、データ件数が多くても速い (6)(7)の比較 (6)ソート過程が面白い、遅い (7)難しい、速い

taritarianime
質問者

補足

すいません。(1)~(7)のそれぞれのメリット・デメリットについて挙げてほしいのです。 他のアルゴリズムと比べないでください。 お願いいたします。

  • stss08n
  • ベストアンサー率16% (454/2762)
回答No.1

難しい事ソース公開には”守秘義務アリ”投稿者様負担ですか。

taritarianime
質問者

補足

>難しい事ソース公開には”守秘義務アリ”投稿者様負担ですか。 何が、難しい事ソース公開には”守秘義務アリ”投稿者様負担ですか?

関連するQ&A

  • 探索・整列アルゴリズムのメリット・デメリットについ

    「コンピューターはなぜ動くのか?」の第5章の「アルゴリズムと仲良くなる7つのポイント」のところにて、主な定番アルゴリズムとして、 表5.1 主な定番アルゴリズム (1)ユーグリットの互除去 (2)エラトステネスのふるい (3)線型探索 (4)2分探索 (5)ハッシュ法 (6)バブル・ソート (7)クイック・ソート 上記のアルゴリズムがあり、そのアルゴリズムの用途には (1)最大公約数のアルゴリズム (2)素数のアルゴリズム (3)データ探索のアルゴリズム (4)整列のアルゴリズム 上記のアルゴリズムがありますが、(3)~(4)のアルゴリズムの用途においてのメリット・デメリット ・データ探索のアルゴリズム (3)線型探索 (4)2分探索 (5)ハッシュ法 についてのメリット・デメリット ・整列のアルゴリズム (6)バブル・ソート (7)クイック・ソート についてのメリット・デメリット これらを教えて頂けばと思っております。 よろしくお願いたします。

  • アルゴリズムの問題教えてください。

    アルゴリズムの勉強をしています。 とりあえず2分探索、ソート各種、 リスト、ハッシュ、2分木AVL木は実装できました。 ほかに定番のアルゴリズムってありますか。 (正規表現は難しすぎて挫折しました。)

  • アルゴリズム系の問題知りませんか?

    再来週大学院試験を控えている者です。 入試の項目に「プログラミング(アルゴリズム)」と書いてあり、ある程度複雑なアルゴリズムを考えるような問題が出る事が予想されます。 きっと二分探索木やクイックソートのような問題が出るように思います。 アルゴリズムを考えるような問題としていい問題ご存じないでしょうか? アルゴリズムを考えるような問題としてはハノイの塔とかよいように思いますが ちょっと入試の問題としては出ないような気がします。 自分では他に線形リストやスタックなども勉強したんですが、 C,JAVA,Pascal,フォートランなどどの言語で回答してもよい事になっているので言語に限定した問題は出ないように思います。 90分で解く3問あるうちのプログラムは1つですから30分以内に解けるような問題のはずです。 (出題される可能性も考えていただければ幸いです)よい問題をご存知でしたら教えてください。 よろしくお願いします。

  • 乱数の順位付けのアルゴリズム

    [0,1]の範囲で乱数を1000個、配列に発生させて、小さいもの100個を選び出すアルゴリズムということを考えます(知りたいのは数値と配列番号、むしろ配列番号が大事)。まず想定できるのはソートですが、それにもいろんなものがあり、クイックソート、バブルソートなどが挙げられます。ソートのアルゴリズムは既に開発されつくしたのかもしれませんが、どのようになっているでしょうか。一番高速な(かつ間違いない)な方法が1つあればそれを採用したいのですが。 そして1つ厄介なのですが、そのトップ100個以外の900個はソートする必要がないということです。私が考えているアルゴリズムは、 1.既に100個の選ばれていると仮定(初期はすべて1) 2.新しい1個が来たとき、100個の最低値よりも小さいなら考慮の対象なのだから最低値を交換してその100個でソートする。そうでない場合は何もしない。 3.次の新しい1個を調べて、項目2をする。 4.発生させた1000個でそれを繰り返す。 このアルゴリズムだと100個のソートを何百回かぐらいやることになります。 これをするぐらいだったら1000個のソートを1回やればいいということになるでしょうか(不必要な残りの900個もソートされてしまう)。あるいはその1回の1000個のソートの中でやる必要のない処理を排除する工夫があるかもしれません。 問題が難しくなく、素人っぽくコード化できると思いますが、その分、非効率なところも放置されそうなので高速化できるコードの書き方があったら教えて頂きたいのですが。コードというよりアイディアだけ説明していただいても助かります。実際はフォートランになると思いますが。よろしくお願いします。

  • それぞれのソート方法の特徴の違いについて

    ソートを勉強しているのですが、 ヒープソートや、クイックソートなど効率の良いやり方と、 バブルソートのように、そうでないものがあるらしいことを 知ったのですが、最強のアルゴリズムは存在するのですか? それとも、ソート対象の状況によって、有効なアルゴリズムが違ってくるのですか? もし違うとしたら、どのように違うのでしょうか。

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

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

  • プログラミングの問題教えてください。(3)

    (1) ソーティング(並べ替え)アルゴリズムには多数の種類がある。次の4つのうち1つについて手順を説明せよ。手順の説明上任意のデータを7つ程度どのように並べ替えるのかを説明しなさい。 回答欄: (1) インサートソート、(2) バブルソート、(3) シェルソート、(4) クイックソート 種類:【 】 説明:

  • アルゴリズムプログラミング

    アルゴリズムにおいて以下のような課題が出たのですかその実行結果を出すためのソースプログラム、または実行結果をどなたか教えてください! (1)バブルソート、選択ソート、挿入ソートプログラムに対して、実行時間(小数点以下2桁まで)、比較回数、代入回数をデータ数50000、100000、150000、200000の4つの場合でそれぞれ測定せよ。ただし対象データはランダム関数SFMTを利用して作成するものとする。 (2) ヒープソート、クイックソートとマージソートプログラムの実行時間(小数点以下2桁まで)、比較回数、代入回数をデータ数50000、100000、150000、200000の4つの場合でそれぞれ測定せよ。ただし対象データはランダム関数SFMTを利用して作成するものとする。 SFMTは以下のサイトからSFMT-srcー1.3.3.zipをダウンロードして解凍する。 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html#SFMT そのうち必要なファイルは sfmt.h sfmt.c sfmt-params.h sfmt-params19937.h を使用する。 どうぞよろしくお願いします。

  • エラトステネスの篩(ふるい)について

    素数を求めるアルゴリズム「エラトステネスの篩(ふるい)」について質問があります。 Wikipedia によると http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9 【ステップ4】 探索リストの最大値が素数リストの最大値の平方よりも小さい場合、素数リストおよび探索リストに残っている数が素数となる。 と記載されています。 2~1000の間にある素数を調べる場合は、 素数リストの最大値が11のところで累乗が1000 を超えるため 残っている数が素数ということなります。 実際試してみたところ、493 を素数と見なしてしまいました。 493 は 17の倍数なのですが、上記のとおり素数リストの最大値が11のところで 残っている数を素数と考えると、17の倍数の削除が働きません。 ほかの質問でエラトステネスの篩(ふるい)について質問されている方がおられるようですが もうひとつ理解が足りませんでしたので、申し訳ありませんが 考え方、やり方の間違いなどについて、ご教授をお願いします。

  • アルゴリズムに関する問題

    こんばんわ、いくつかの問題につまってしまったので解答と簡単な解説をお願いします; 【問1】 4桁の数字( a1a2a3a4 )をハッシュ法を用いて配列に格納したい。 ハッシュ関数をmod( a1 +a2 +a3 +a4 ,5 )とし、求めたハッシュ関数値に対応する位置の配列要素に格納する場合、9576は(ア)~(オ)のどこに入るか。 ここでmod(x,5)の値は、xを5で割った余りとする。 位置  配列 0  (ア) 1  (イ) 2  (ウ) 3  (エ) 4  (オ) 【問2】 相違なるn個のデータが昇順に整列された表がある。この表を1ブロックm個に分割し、各ブロックの最後尾のデータだけ線形検索することによって、目的のデータを探し出す。 次に当該ブロック内を線形検索して目的のデータを探し出す。 このときの平均探索(比較)回数は(ア)~(エ)のうちどれか。 ここでm<nとし、目的のデータは必ず表の中に存在するものとする。 (ア)  (イ)  (ウ)  (エ)  n    n          n    m n  ─    ─    m + ─   ─+─  m    2m         m    2 2m 【問3】 次の手順はシェルソートによる整列を示している。 データ列”7,2,8,3,1,9,4,5,6”を手順(1)~(4)に従って整列すると手順(3)を何回繰り返して完了するか。 ここで、〔〕は小数点以下を切り捨てる。 <手順> (1)〔データ数÷3〕→Hとする。 (2)データ列を互いにH要素分だけ離れた要素の集まりからなる部分列とし、それぞれの部分列を挿入方を用いて整列する。 (3)〔H÷3〕→Hとする (4)Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。 以上になります。