アカウント名:
パスワード:
コンピュータサイエンスの初級コースってのがどんな教育をする場かは知りませんが、アルゴリズムのお勉強とかは、C/C++ がベストと思うんですよね。使える機能がもっとも原始的という意味で。ま、最低、Java でもいいとは思うけど。
数あるプログラミング言語でも飛び抜けて多機能なC++を、「使える機能がもっとも原始的」とは恐れいった
そうかもしれない。私がイメージしたのはGCとかに邪魔されず。基本的なデータ構造を自作しても効率が悪くないくらいに原始的という感じ。確かにSTLとか使っちゃったらアルゴリズムのお勉強にならないね(^^;
STLの存在がデータ構造のアルゴリズムの学習を妨げるとしたら、qsortがあるCだってソートの学習に向いていないことになってしまうある機能が学習の妨げになるというのなら、それを使わないようにすればいいだけそれに、より原始的なほうが適しているというのなら、マシン語やアセンブリ言語から学ぶべきだし、GCがアルゴリズムの学習を阻害するというのも意味がわからないな
> GCがアルゴリズムの学習を阻害するというのも意味がわからないな
ここだけ説明、GC のある言語でマージソートのようなメモリを確保するアルゴリズムを実装すると、実装に仕方にもよるけど、正体不明の速度低下を引き起こすことがあったりするんですよ。私自身の体験ですけどね。で、アルゴリズムの素の性能を見極めるときの邪魔にならないかなぁと思ったと。
C++がとんでもなく多機能なのは誰が見ても明らかで、「使える機能が原始的」という根拠はまったく説得力を持たない。そして「アルゴリズムの素の性能を見極めるときの邪魔にならないかなぁと思った」とのことだが、もちろん現実にはデータの個数やデータの並びの乱雑さ、比較関数の複雑さなどによって結果は異なるため、実際のコードを走らせても「素の性能」を測ることはできない。「アルゴリズムの素の性能」を測るときに用いるのは数学的な計算量だ。
「基本的なデータ構造を自作しても効率が悪くない」と、C++が効率に優れることも根拠としているようだが、Javaは通常の用途ではC++と遜色ないレベルまで効率的になっており、情報科学
>C++がとんでもなく多機能なのは誰が見ても明らかで、「使える機能が原始的」という根拠はまったく説得力を持たない。
私は「原始的なほど多機能」だという感覚があるから、全然違和感ありませんが。
(私にとって)超高級言語の LOGO とか、他の言語に比べて機能が少ないどころの話じゃないですし。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
アルゴリズムのお勉強 (スコア:0)
コンピュータサイエンスの初級コースってのが
どんな教育をする場かは知りませんが、
アルゴリズムのお勉強とかは、C/C++ がベストと思うんですよね。
使える機能がもっとも原始的という意味で。
ま、最低、Java でもいいとは思うけど。
Re: (スコア:0)
数あるプログラミング言語でも飛び抜けて多機能なC++を、「使える機能がもっとも原始的」とは恐れいった
Re: (スコア:0)
そうかもしれない。私がイメージしたのはGCとかに邪魔されず。
基本的なデータ構造を自作しても効率が悪くないくらいに原始的という感じ。
確かにSTLとか使っちゃったらアルゴリズムのお勉強にならないね(^^;
Re: (スコア:0)
STLの存在がデータ構造のアルゴリズムの学習を妨げるとしたら、qsortがあるCだってソートの学習に向いていないことになってしまう
ある機能が学習の妨げになるというのなら、それを使わないようにすればいいだけ
それに、より原始的なほうが適しているというのなら、マシン語やアセンブリ言語から学ぶべきだし、
GCがアルゴリズムの学習を阻害するというのも意味がわからないな
Re: (スコア:1)
> GCがアルゴリズムの学習を阻害するというのも意味がわからないな
ここだけ説明、GC のある言語でマージソートのようなメモリを
確保するアルゴリズムを実装すると、実装に仕方にもよるけど、
正体不明の速度低下を引き起こすことがあったりするんですよ。
私自身の体験ですけどね。
で、アルゴリズムの素の性能を見極めるときの邪魔にならないかなぁと思ったと。
Re: (スコア:0)
C++がとんでもなく多機能なのは誰が見ても明らかで、「使える機能が原始的」という根拠はまったく説得力を持たない。
そして「アルゴリズムの素の性能を見極めるときの邪魔にならないかなぁと思った」とのことだが、
もちろん現実にはデータの個数やデータの並びの乱雑さ、比較関数の複雑さなどによって結果は異なるため、
実際のコードを走らせても「素の性能」を測ることはできない。
「アルゴリズムの素の性能」を測るときに用いるのは数学的な計算量だ。
「基本的なデータ構造を自作しても効率が悪くない」と、C++が効率に優れることも根拠としているようだが、
Javaは通常の用途ではC++と遜色ないレベルまで効率的になっており、
情報科学
Re:アルゴリズムのお勉強 (スコア:1)
>C++がとんでもなく多機能なのは誰が見ても明らかで、「使える機能が原始的」という根拠はまったく説得力を持たない。
私は「原始的なほど多機能」だという感覚があるから、
全然違和感ありませんが。
(私にとって)超高級言語の LOGO とか、他の言語に比べて機能が少ないどころの話じゃないですし。