今だけ人気マンガ100円レンタル特集♪

「アルゴリズム」の意味がいまいちよくわかりません。
イメージとしては「プログラム」と言うことでしょうか?

以前した質問ですが
http://okwave.jp/qa4995619.html
このようなvbaのコードも
「アルゴリズム」と呼べるのでしょうか?
アドバイス宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

私なりの解釈


電車を使い池袋駅から東京駅に行く場合
JRを使い山手線で内回りもしくは外回りで行く
新宿で中央線に乗り換える
地下鉄丸の内線で
地下鉄有楽町線で有楽町でJRに乗り換える

東京駅に着くと言う結果は同じですが
時間、料金が変わってきます。
優れた「アルゴリズム」ならば最も早く安くとなるでしょう。
これがPCに置き換えて考えれば良いと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/06 19:47

良いアルゴリズムと悪いアルゴリズム


というのは判定が難しいことが多いです。

そのプログラムが実行される状況によって異なります
例えばソート ヒープソートが一番早いといわれていますが
少ない件数ならバブルソートでも十分です。

質問者の捜されたURLに出ている2分検索法も件数が少ないなら上から順番につき合わせるほうが早いでしょう。

「メモリーを多く使用するけど早い」「メモリー消費が少ないけど遅い」
どちらを選択をすかという場合もあります。

プログラミングに当たって
どのアルゴリズムを採用するかは重要ですが
そのほかにも
変数や関数の名称の付け方
サブルーティンやファンクションの切り分け方
などセンスが問われるところです。
これもメンテナンス時に大きな要素のなります。
「エレガント」なコードを書くのはなかなか難しいものですが
いつもそういうことを意識しておくことが大事かなと思っています。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/09 19:48

処理手順、処理方法、解決方法、などの意味かと思ってました。



「良いアルゴリズム」=「より効率的な処理手順」
「良いアルゴリズム」=処理の手順が少ない解法=必然的に高速になる。
という感じで。

有名なのでは
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

ただ、
良いアルゴリズム=初心者プログラマなど、誰もがメンテしやすいもの
でない場合も稀にあると思いますので、
高度なアルゴリズム重視か、メンテや理解しやすさ重視か、
ケースバイケースで考えないといけないと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/06 22:46

アルゴリズムとは問題の解法手順のことですから


どんなに簡単でもアルゴリズムはアルゴリズムです。

ただ例の場合は実際のコンピュータは複雑な処理をしていますが
このコードは
Dirという関数を呼ぶ
結果によってMkdirという関数を呼ぶ
というようなものですから別に特別な解法手順ではありません

Dirという関数の中身自体は結構複雑なことをしているしそれらのから呼ばれるまた多くのプログラムがあるわけで、中には結構複雑なアルゴリズムが存在しています。
Excelのワークシート関数でもかなり複雑なアルゴリズムで機能しています
どういう手順で答えをだしているか考えてみるのもアルゴリズムの勉強になるかもしれません。
Vlookup関数は「二分検索法」というアルゴリズムで機能しています
この辺りから調べてみたらどうですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/06 19:48

こんばんは。



Sub test()
 If Dir("C:\バックアップ\" & Date$, vbDirectory) = "" Then
   MkDir "C:\バックアップ\" & Date$
 End If
End Sub

書いた人には失礼かもしれませんが、私は、これは定型化したコードであって、アルゴリズムには至らないと思います。そこに解法のテクニックが含まれなくてはならないと思います。

アルゴリズムというのは、解法のための手順であって、それは、数学の天才やプログラムの天才によって作られたもので、公になっているものだと思っています。また、アルゴリズムは、コンピュータ言語の前から存在し、それをコンピュータ言語に移植しただけのものも多くあります。個人では、よほどできる人でない限りは、なかなか解けないものも多いのです。たとえば、ソートのアルゴリズムなどがよく使われます。なお、アルゴリズム自体は、著作権が存在しません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/06 02:59

Wkiより


http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB% …
アルゴリズムとは、コンピューティングに関連する分野において、問題を解くための効率的手順を定式化した形で表現したもの

コンピュータにアルゴリズムを指示するための(電子)文書をプログラムという

ということです。
    • good
    • 0
この回答へのお礼

「問題を解くための効率的手順を定式化した形で表現したもの」
ですね。

wikiも見たんですが、文字が多すぎて難しくて^^;
どうもありがとうございました。

お礼日時:2009/09/06 01:42

単純にいうと解法ですね。


ですので何かの処理を解決する方法でしたら
アルゴリズムと言えると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/06 01:41

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


人気Q&Aランキング