• ベストアンサー

アルゴリズムとはこういう事でしょうか?

「アルゴリズム」の意味がいまいちよくわかりません。 イメージとしては「プログラム」と言うことでしょうか? 以前した質問ですが http://okwave.jp/qa4995619.html このようなvbaのコードも 「アルゴリズム」と呼べるのでしょうか? アドバイス宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hayasi456
  • ベストアンサー率40% (2402/5878)
回答No.4

私なりの解釈 電車を使い池袋駅から東京駅に行く場合 JRを使い山手線で内回りもしくは外回りで行く 新宿で中央線に乗り換える 地下鉄丸の内線で 地下鉄有楽町線で有楽町でJRに乗り換える 東京駅に着くと言う結果は同じですが 時間、料金が変わってきます。 優れた「アルゴリズム」ならば最も早く安くとなるでしょう。 これがPCに置き換えて考えれば良いと思います。

lokijuh
質問者

お礼

とてもわかりやすいです。 数ある手段の中で一番効率のいい方法という感じですね。 ご回答ありがとうございます。

その他の回答 (6)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.7

良いアルゴリズムと悪いアルゴリズム というのは判定が難しいことが多いです。 そのプログラムが実行される状況によって異なります 例えばソート ヒープソートが一番早いといわれていますが 少ない件数ならバブルソートでも十分です。 質問者の捜されたURLに出ている2分検索法も件数が少ないなら上から順番につき合わせるほうが早いでしょう。 「メモリーを多く使用するけど早い」「メモリー消費が少ないけど遅い」 どちらを選択をすかという場合もあります。 プログラミングに当たって どのアルゴリズムを採用するかは重要ですが そのほかにも 変数や関数の名称の付け方 サブルーティンやファンクションの切り分け方 などセンスが問われるところです。 これもメンテナンス時に大きな要素のなります。 「エレガント」なコードを書くのはなかなか難しいものですが いつもそういうことを意識しておくことが大事かなと思っています。

lokijuh
質問者

お礼

センスが重要そうですね。 ありがとうございます。

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.6

処理手順、処理方法、解決方法、などの意味かと思ってました。 「良いアルゴリズム」=「より効率的な処理手順」 「良いアルゴリズム」=処理の手順が少ない解法=必然的に高速になる。 という感じで。 有名なのでは 1~10を全て足すといくつになるか? という問題です。 (01)単純に1~順番に足す方法 (02)1と10、2と9、3と8、4と7、5と6を足す。つまり11×5 (01)も(02)も1つのアルゴリズムだと考えればよいのではないでしょうか? 参考URL http://research.nii.ac.jp/~uno/algo_3.htm ただ、 良いアルゴリズム=初心者プログラマなど、誰もがメンテしやすいもの でない場合も稀にあると思いますので、 高度なアルゴリズム重視か、メンテや理解しやすさ重視か、 ケースバイケースで考えないといけないと思います。

lokijuh
質問者

お礼

とてもわかりやすいサイトですね。ありがとうございます。参考になりました。

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.5

アルゴリズムとは問題の解法手順のことですから どんなに簡単でもアルゴリズムはアルゴリズムです。 ただ例の場合は実際のコンピュータは複雑な処理をしていますが このコードは Dirという関数を呼ぶ 結果によってMkdirという関数を呼ぶ というようなものですから別に特別な解法手順ではありません Dirという関数の中身自体は結構複雑なことをしているしそれらのから呼ばれるまた多くのプログラムがあるわけで、中には結構複雑なアルゴリズムが存在しています。 Excelのワークシート関数でもかなり複雑なアルゴリズムで機能しています どういう手順で答えをだしているか考えてみるのもアルゴリズムの勉強になるかもしれません。 Vlookup関数は「二分検索法」というアルゴリズムで機能しています この辺りから調べてみたらどうですか?

lokijuh
質問者

お礼

なんとなくイメージがわかりました。 ご回答ありがとうございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 Sub test()  If Dir("C:\バックアップ\" & Date$, vbDirectory) = "" Then    MkDir "C:\バックアップ\" & Date$  End If End Sub 書いた人には失礼かもしれませんが、私は、これは定型化したコードであって、アルゴリズムには至らないと思います。そこに解法のテクニックが含まれなくてはならないと思います。 アルゴリズムというのは、解法のための手順であって、それは、数学の天才やプログラムの天才によって作られたもので、公になっているものだと思っています。また、アルゴリズムは、コンピュータ言語の前から存在し、それをコンピュータ言語に移植しただけのものも多くあります。個人では、よほどできる人でない限りは、なかなか解けないものも多いのです。たとえば、ソートのアルゴリズムなどがよく使われます。なお、アルゴリズム自体は、著作権が存在しません。

lokijuh
質問者

お礼

解決のテクニックがあるかないかが重要ですね。 ご回答ありがとうございます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

Wkiより http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0 アルゴリズムとは、コンピューティングに関連する分野において、問題を解くための効率的手順を定式化した形で表現したもの コンピュータにアルゴリズムを指示するための(電子)文書をプログラムという ということです。

lokijuh
質問者

お礼

「問題を解くための効率的手順を定式化した形で表現したもの」 ですね。 wikiも見たんですが、文字が多すぎて難しくて^^; どうもありがとうございました。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

単純にいうと解法ですね。 ですので何かの処理を解決する方法でしたら アルゴリズムと言えると思います。

lokijuh
質問者

お礼

「解法」ですか。 わかりやすい例えです。 どうもありがとうございました。

関連するQ&A