データ構造とアルゴリズムを学習するための2つのツール| Conscience Recommendation

データ構造とアルゴリズムの重要性は、河川や湖沼で聞いたに違いありません。最も直接的な影響は面接です。一般的に言えば、プログラマーはデータ構造とアルゴリズムの知識に関与します。特に、仕事を見つけるのが難しい現在の状況では、企業は候補者の基本的な能力にもっと注意を向けます。もう1つの影響は仕事です。私を例にとると、小さな会社で最初にビッグデータを始めたとき、大量のデータと不十分なコンピューティングリソースが原因で、ソフトウェアのパフォーマンスを最適化するためにさまざまな方法を試す必要がありました。解決が最も難しい問題は空間検索効率で、当時はkd-treeデータ構造と最短経路アルゴリズム(SPFA)が使用されていました。もちろん、ほとんどの場合、この一般的なアルゴリズムのように既存のパッケージを呼び出すだけで十分ですが、ビジネスに関連していくつかの改善を加える必要がある場合もあります。現時点では、確かな基本スキルを身につけることが特に重要です。

私は最近、特に使いやすいデータ構造とアルゴリズムを学習するための2つのツールに注目しました。以下では、これら2つのツールを個別に紹介します。これらを収集して、後で使用することができます。

最初のツールは、データ構造とアルゴリズムの可視化ツールであるデータ構造の可視化です。このツールは、サンフランシスコ大学によって次の場所で開発されました。

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html复制代码

その役割は、データ構造とアルゴリズムを視覚化して、原則の理解を促進することです。似たようなツールがたくさんありますが、4つか5つ比較すると、これが一番良いと思います。コンテンツが豊富で、操作が簡単で、アクセスが速く、理解しやすい。ウェブサイトは英語ですが、英語が少なく、わかりやすい用語です。

他のツールへのリンクを取得 するには、公開番号通過コードの返信キーワード dsに 注意してください
以下では、ツールの使用方法の簡単な体験を提供します。まず、ツールに含まれる量を見てみましょう

これはその一部にすぎません。さまざまなツリー(バイナリ検索ツリー、赤黒木、Bツリー)、さまざまなソート(マージソート、クイックソート、ヒープソート)、およびさまざまなグラフアルゴリズム(最短パス)が含まれていることがわかります。 、最小スパニングツリーアルゴリズム)。基本的に、通常使用するデータ構造とアルゴリズムについて説明します。

ツールがどのように動作するかを見てみましょう

上の写真の左側はツールで作成した赤と黒のツリーで、右側はB +ツリーです。ページに冗長な情報が多すぎず、挿入、削除、印刷に関連するボタンとオプションのみが含まれており、学習コストが特に低いことがわかります。データ構造自体の原理を理解するために、挿入および削除時に対応するアニメーションが表示されます。体験するための短いビデオが以下に記録されています。(ここに直接投稿されたビデオは本当にはっきりしていません、リンクが貼られています、あなたはリンクでそれを見つけることができます)

赤黒木(最初のビデオへのリンク):mp.weixin.qq.com/s?__biz=MjM…

B +ツリー(2番目のビデオへのリンク):mp.weixin.qq.com/s?__biz=MjM…

実際、ここからは、赤黒木とB +ツリーの違いをおおまかに見ることができます。上の図のB +ツリーには、赤黒木よりも多くの要素がありますが、木の高さは赤黒木よりも低くなっています。この機能により、データベースシナリオでは、インデックスに赤と黒のツリーを使用できないため、ツリーの高さが非常に高くなります。この視覚化の方法は非常に心地よいです。

上記で視覚化ツールを紹介し、次にデータ構造とアルゴリズムのコードライブラリを紹介します。

https://github.com/TheAlgorithms/Pythonhttps://github.com/TheAlgorithms/Javascripthttps://github.com/TheAlgorithms/Javahttps://github.com/TheAlgorithms/C复制代码

さまざまな言語で利用できます。それが何を含んでいるか見てみましょう

これはコンテンツの一部にすぎず、視覚化ツールと同様に、一般的なデータ構造とアルゴリズムが基本的に含まれています。

最後に、バイナリ検索の小さな例を使用して、これら2つのツールを組み合わせます。バイナリサーチアルゴリズムは非常にシンプルで、就職の面接で最も頻繁に聞かれる質問です。簡単ですが、過小評価しないでください面接官だった頃、まだ書けない人に出会いました。Pythonバージョンアルゴリズムライブラリのコードアドレス:

https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py复制代码

私もそれを自分で実装しました、コードは次のとおりです:

バイナリ検索プロセスは次のとおりです(3番目のビデオへのリンク)。

mp.weixin.qq.com/s?__biz=MjM…

これには、検索プロセスと、検索の各ステップに対応する実行コードの両方が含まれるため、学習に非常に便利です。

視覚化ツールとコードがあり、学習できないデータ構造とアルゴリズムはないと私は信じています。この2つのツールがお役に立てば幸いです。その他のツールについては、キーワードds返信してください

他では見ることのできない乾物を出力するための公開番号「dudu」へようこそ


おすすめ

転載: juejin.im/post/5e9317ae6fb9a03c526849d0