データ構造とアルゴリズム(DSA)は、すべてのCS学生が熟練しなければならないコンピューターサイエンスで最も重要なトピックの1つであり、非CS学生でさえそれを基本的に理解しなければなりません。 DSAはパンとバターのようなCSの必要性のようなものだと言われています。このリポジトリは、データ構造とアルゴリズムを学習し、実装したい人(私のような)のために作られています。
C、C ++、またはJavaは、メモリの割り当てや適切な取引などのコードを書いているときに多くのことを処理する必要があり、そうすることで多くのことを学ぶためにDSAを実装するのに最適な言語ではないことに同意しません。
しかし、GOがDSAを実装するのに適した言語である理由は、多くの魔法が欠けているからです。オペレーターの過負荷はないので、余分な複雑さを隠す方法はありません。インデックス操作はo(1)、ループは常にo(n) - です。ジェネリックはありませんので、多くの余分な抽象化とヘルパーは存在しませんが、実際にはかなり素晴らしいです。アルゴリズムのランタイムを大幅に変更する可能性のある怠lazやその他のコンパイラ駆動型の魔法はありません。また、スライスのポインターと低レベルのプリミティブがあります。つまり、データが詰め込まれている場合や、データに追加の間接がある場合が明らかです。要するに、コードから実際のアルゴリズム実行を明らかにしてください。これはアルゴリズムを学ぶのに良いことです。
結論:また、データ構造とアルゴリズムの実装を開始するのに適した言語になります。
cd <folder-name>になります。go run . 。graphs/directed_unweightedディレクトリにあるファイルを実行すると仮定します。それを実行する構文は次のとおりです。
cd graphs/directed_unweighted/
go run .
注:ポインター ":point_left:"は、不完全な実装を示し、TODOリストにあります。
このリポジトリは、データ構造とアルゴリズムを実装する方法を学ぶためのものであり、他の人の貢献は自分でそれを実装する方法を実際に教えてくれないので、プルリクエストを受け入れません。ただし、このレポをフォークし、コードを変更して、さまざまなデータ構造やアルゴリズムを中心に再生してください。さらに、コードの周りで再生している間、インプレメンテーションで異常または間違ったものを見つけた場合、同じ問題を作成していただければ幸いです。
このリポジトリは、MITライセンスの下でリリースされます。要するに、これは、個人、オープンソース、または商業プロジェクトでこのソフトウェアを自由に使用できることを意味します。帰属はオプションですが、感謝されています。
HAPPY CODING
HAPPY LEARNING