アルゴリズム入門 (CLRS) という本を読むことはどのように役立ちますか? このコースを学ぶことは、理論的コンピューター サイエンスの他の分野とどのように関連していますか? (私が得ることができる直感と洞察を意味します)。
私はこの概念に慣れていません.現在、コースで学んでいた並べ替えアルゴリズムに飽きてきています.コースを学びながら、より広い視野を持ちたいと思っていました.物事がどのように進むかについての構造を私に教えてください。事前に感謝します! :)
アルゴリズム入門 (CLRS) という本を読むことはどのように役立ちますか? このコースを学ぶことは、理論的コンピューター サイエンスの他の分野とどのように関連していますか? (私が得ることができる直感と洞察を意味します)。
私はこの概念に慣れていません.現在、コースで学んでいた並べ替えアルゴリズムに飽きてきています.コースを学びながら、より広い視野を持ちたいと思っていました.物事がどのように進むかについての構造を私に教えてください。事前に感謝します! :)
アルゴリズムは、コンピュータサイエンスにおける理論的知識の実用的なアプリケーションです。それらは、いわばコンピュータサイエンスの工学的側面の最も理論的な部分です。アルゴリズムの研究がなければ、ソフトウェアの誰もがアマチュアになるでしょう-計算は効率なしでは役に立たないので-または彼は既知の実装を実際に書くのではなく常に問題の解決に集中しなければならないので何も生み出さないでしょう問題を解決するために。
教訓的な観点から、アルゴリズムは理論的知識を正確な表現に蒸留したものです。グラフ走査とは何か、および連結成分がどれほど強く収縮する必要があるかを理解できます。あなたがそれらの考えに簡潔な形を与えようとするならば、それをする最良の方法はあなたが望むことをするアルゴリズムを書き留めることです。
正式なレベルでは、それらは私たちが取り組んでいる概念を理解するのに役立ちます。これまたはその複雑さで何らかの問題を解決できると主張する場合、それを証明するためのアルゴリズムが必要です。たとえば、一般的なケースで並べ替えがO(n log n)であると読んだ場合は、先に進んで教授を信じることができます。多分あなたはそれが本当かもしれない理由を直感さえ持っています。しかし、実際にそれを証明するには、ソートを解決するアルゴリズムが必要です。このアルゴリズムは、一般的な場合、O(n log n)で実行されることを証明します。したがって、理論レベルでは、アルゴリズムは問題を複雑さに従って分類するのに役立ちます(「難易度」を読んでください)。
この質問に具体的な答えがあり、これが正しい質問の場所であるかどうかはわかりませんが、それでも有用な質問です。人生の多くを費やして、残りの人生で使用するスキルセットを学ぶように人々を導くことを信頼することは別として、私は常にアルゴリズム設計をより明確に考える方法を学ぶ方法として見てきました。これは誰もが学ぶことができると私は信じています。
また、私が学生だったとき、私が学ばなければならないこと(それは無駄だと信じて)に不満を感じることが何度もありました。事実上すべてが非常に有用であり、頻繁に使用することがわかりました。振り返ってみると、私が学校にいたときよりもはるかに多くのクレジットを教授に与えていたらよかったのにと思います。