私は数年前に大学のコースでアルゴリズムについて学びました。しかし、本を使用してアルゴリズムを実行する場合は、優れたものが必要です。アルゴリズムを理解する方法として、2冊の本が私にとって際立っています。
- Steven S. Skiena によるアルゴリズム設計マニュアル
- T Cormen、C Leiserson、R Rivest、C Stein によるアルゴリズムの紹介
前者はおそらくより実践的なマニュアルですが、後者はより聖書に似ていますが、証拠があります。
あなたが従うことができる戦略は、読んだり、理論的な演習を行ったり、できる限り多くを実装したり、興味深いまたは挑戦的または両方であるアルゴリズム/問題に焦点を当てたりすることで構成されます。したがって、アルゴリズムを実装するだけでなく、アルゴリズムのすべての側面をカバーするようにしてください。これには、彼らの時間と空間の複雑さを研究し、それらの正確さを証明することが含まれます。アルゴリズムの研究は、単にアルゴリズムを実装するだけではありません。
十分な経験を積んだ後、専門化を開始します。たとえば、計算幾何学やノンブロッキングアルゴリズムに興味がある場合は、この分野の書籍や研究論文を探索してください。
専門化は良いですが、他の分野のテクニックをサンプリングすることも良いので、アルゴリズムについて広く読む(そしてそのようなアルゴリズムを実装する)ことは、幅広いスキルセットを維持するための良い方法です。
編集:入門的なアルゴリズムを通過した後、Motwani&RaghavanによるRandomized AlgorithmsやVaziraniによるApproximation Algorithmsなどの書籍を参照できます。これらの本は、より高度なアルゴリズム設計手法に関する調査(および、ある程度、数学手法の優れた学習課題)です。また、グラフやネットワーク、データ構造の設計、最適化など、CSの他の多くの分野への洞察を広げます。