- PR -

アルゴリズム

投稿者投稿内容
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-03-10 10:28
引用:

無月 重造さんの書き込み (2004-03-10 09:39) より:
学ぶのはいいのですが、知識として腐らしておくだけではやっぱりよくないと思うので
まずは必要なところから学んでいくべきだと思います。

ぶっちゃげ、一般に出回ってるアルゴリズムを使わなければいいプログラムを組むことができないってわけでもないですからね。


一昔前では(といってもその人の環境によりますけど)、ある程度のアルゴリズムは自分で実装する必要があったり、データ構造も自分で考えたり一般的な構造を自分で実装したり、ということが多かったので、そういったものを扱う場合には結構実装までできるレベルの知識が必要だったりしました。
今では、基本的な(というか通常いかにもよく使われるような)アルゴリズムやデータ構造は、標準的なライブラリで提供されることが多くなっています(もちろん環境によりますが)。
なので、現在はどちらかというと、あることをしたいときに、どのアルゴリズムやデータ構造を用いればよいか(ライブラリで提供されているどの機能が利用できるか)、あるいは独自に作成する必要があるか、といったことを判断するための知識として必要だと思います。
また、そういったライブラリのヘルプやマニュアルに書かれている内容を理解するため、あるいはライブラリのクラス名等から単純にどんな機能化を大体把握するのにも役立ちますね。
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2004-03-10 10:36
大学のアルゴリズムの講義では
アルゴリズムの設計と解析I
アルゴリズムの設計と解析II
を使って勉強してました。

特定のプログラミング言語によらない内容(ただしアルゴリズムは片言Algolで書かれている)ですが、ちょっと肩が凝るかも。


VBばかりやってきたプログラマーを見ていると、VBにはいろいろと便利なオブジェクトだのコントロールだのがあるおかげで、FORTRANなどのようなレガシー言語(笑)では配列を使ってプログラミングする処理でも、配列を使わずにプログラミングしたがる傾向がありますね。

その結果、生産性は向上しますが処理速度は落ちてしまいます。

それでオブジェクトだのコントロールだのを使わずに配列を使うように指示すると、修正にかなり時間がかかったりしてます。

チープなCPUに数十KBのメモリで構成されたマシンで、いかに高速かつ多機能なプログラムを作るかなんてことを経験した者に取っては、つい「藻前ら楽してんじゃねぇ」と声を荒げたいところですが、wiemさんは便利な機能を使うことによる弊害に気付かれたようなので、がんばって他とは一線を画すような技術者になられることを期待しています。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-03-10 12:03
ほむらです。

アルゴリズムも大切ですけど
他の方も言われているとおり、必要になってからでいいんじゃないかなーなんて思ってみます。

個人的には学ぶべき言語があるのならば、
まずは他人のソースコードを読むとか、
いわゆる、定石手法というのを勉強してみては?と思いますねー
別々の人の書くソースでの共通点が定石に近いともいえるのかな?

個人的に定石=可読性とか思っているので、ソート覚えるとかするまえに
変な書き方しないように、そっちから覚えてほしいかなと。。。
Beatle
ぬし
会議室デビュー日: 2003/06/09
投稿数: 394
投稿日時: 2004-03-10 12:58
そもそものご質問は、
アルゴリズムを勉強しようと思っている。

アルゴリズムの解説書を見るとC言語で書かれたものがほとんど

自分はC#を勉強中なので読み替えなければならない

他言語(VB)のプログラマーはどのようにしているのか?

ということですよね?

結論から言えば、VBのプログラマーでもCは必須的に知っています。
Cを知らないとVBでもコーディングできない部分がたくさんあるから
です。(例えばAPIを使う場合等)
で、アルゴリズムそのものの理論を知って自分なりにVBで記述するか、
サンプルのCのソースをVBに書き換えたりします。(ビット操作等が
出てくる場合難しいときもありますが)後者の方法でアルゴリズムをC#
なりで実装しようと思うのであれば、Cの基本部分は読める必要があるの
ではないでしょうか?
りばぁ
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 130
お住まい・勤務地: 愛知県
投稿日時: 2004-03-10 13:17
Cのアルゴリズムの本と、VBのアルゴリズムの本と2種類持ってますけど、
勉強のためにはVBの方はあまりお勧めできませんね・・。
考え方なので、確かにどの言語使っても学べるのですが、サンプルプログラムが
VB特有の方法で実現されていたりすると、他の言語に応用するのが辛いです^^;
(.NETのアルゴリズム本ってあるんですかね?それだとまた違うかもしれませんが)

引用:

結論から言えば、VBのプログラマーでもCは必須的に知っています。
Cを知らないとVBでもコーディングできない部分がたくさんあるから
です。(例えばAPIを使う場合等)


Cとか知らないVBプログラマーはたくさんいると思いますけど?
ただ、そういう人がいいプログラムを書けるかどうかは別として^^;
APIにしても、関数コールするだけなので、Cを知ってるかどうかとは
関係ないと思われます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-10 13:27
引用:

ゆうさんの書き込み (2004-03-10 09:08) より:

引用:

「Algorithm Collection」というサイトがあって、そこにいろいろなアルゴリズムがコレクションされていたのだが・・・閉じているみたい。



おや、復活されてますね


 う〜ん?Errorだ。
HTTP 500:
Connecting to alfin.mine.utsunomiya-u.ac.jp: Host not found

 “ここ”から見えないだけ?家に帰ってから、もう一度トライしてみよう。。。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-10 13:32
引用:

まゆりんさんの書き込み (2004-03-10 08:58) より:

昨日買った「日経ソフトウェア4月号」に
「アルゴリズムでプログラミングの実力アップ!」という記事がありました。


ここで、「ちょっと読む」ことができます。
http://software.nikkeibp.co.jp/software/contents/2004/0404index.html

#定期購読しているのに読んでいないヤツσ(・_・)
ゆう
ベテラン
会議室デビュー日: 2003/06/20
投稿数: 56
投稿日時: 2004-03-10 13:34
引用:

Jittaさんの書き込み (2004-03-10 13:27) より:
 う〜ん?Errorだ。
HTTP 500:
Connecting to alfin.mine.utsunomiya-u.ac.jp: Host not found

 “ここ”から見えないだけ?家に帰ってから、もう一度トライしてみよう。。。



あれ、今みたら確かにエラーですね。
朝書き込んだ時点では見れていたのですが

#引用が多すぎたので削除

[ メッセージ編集済み 編集者: ゆう 編集日時 2004-03-10 13:35 ]

スキルアップ/キャリアアップ(JOB@IT)