Cracking the Coding Interview を購入したので、演習を行いたいと思います。私は Python と Clojure に精通しており、この目的に適しているかどうか疑問に思っています。私が作成したリストとクラス (またはレコード) のみを使用するように厳密な制限を課した場合でも、(メモリ管理以外の) 学習に関して十分な利点が得られるでしょうか、それとも C/Java に戻るべきでしょうか (私は'何年も触れていない)?
3 に答える
どのアルゴリズムとデータ構造をいつ実装するかを知ることは、どの言語でも重要なスキルであり、ほとんどのアルゴリズムはすべての主流言語で実装できます。
それらについてのポイントは、プログラムのスケーラビリティ、つまり入力が増えるにつれてパフォーマンスが低下することです。これは、低レベルのプログラミング言語に切り替えることで得られる一定の要素の高速化よりもはるかに重要です。
実際のパフォーマンス要件を備えた実際のプログラムを作成している場合は、PythonではなくCで作成するという利点があります。ただし、主に使用するアルゴリズムに関心があります。ほとんどすべてのアルゴリズムは任意の言語で実装できるため、使用する言語は関係ありません。PythonまたはClojureが得意な場合は、それらを使用してください。
編集:すべての言語で実装できない「アルゴリズム」の例は、Duffのデバイスです。
データ構造にはどんな一般的な言語も適していると思います。
ただし、Pythonの場合と同様に、多くのデータ構造がすでに言語の一部になっています。もちろん、データ構造を追加することはできますが、多くはすでに実装されているため、再度実行する必要はありません(内部をもう少し詳しく知りたい場合を除く)。
たぶん、データ構造を深く掘り下げることが役立つかどうかを考えることも役立つでしょう(つまり、Pythonは十分に提供するのか、それとも単なる知識収集の問題なのか)。