序文 今日は引き続き js アルゴリズムについてお話ししましょう。以下の説明を通じて、検索アルゴリズムの基本的な実装とさまざまな実装方法のパフォーマンスを理解し、for ループ、forEach、While のパフォーマンスの違いを見つけることができます。また、Web ワーカーを介してアルゴリズムをシャーディングして、アルゴリズムのパフォーマンスを大幅に向上させる方法も学習します。 同時に、古典的なバイナリアルゴリズムとハッシュテーブル検索アルゴリズムも簡単に紹介しますが、これらはこの章の焦点ではありません。後ほど、これらの高度なアルゴリズムを詳細に紹介する関連記事を公開します。興味のある友人は、私のコラムをフォローしたり、一緒に議論したりすることができます。 アルゴリズムのパフォーマンスについては、前回の章「フロントエンドアルゴリズムシリーズ」の getFnRunTime 関数を引き続き使用して、フロントエンドコードの速度を 60 倍に上げる方法を学習します。興味がある場合は、確認していただければ、ここでは詳しく説明しません。 前回の章「フロントエンドアルゴリズムシリーズ」では、フロントエンドコードの速度を60倍に上げる方法について、19,000個のデータをシミュレートしました。この章では、効果をより明確にするために、テスト用に170万個のデータを偽造しますが、信じてください、これはjsにとって何でもありません。 。 。 1. forループ検索
コードは次のように実装されます。
n 回テストした結果は次のとおりです。 2. forEachループ 基本的な考え方は for ループに似ています。
これには 21 ~ 24 ミリ秒かかり、パフォーマンスは for ループほど良くないことがわかります (今のところ、本質も真実であるとだけ言っておきます)。 3. whileループ コードは次のとおりです。
while ループと for ループのパフォーマンスは似ており、どちらも優れていることがわかりますが、forEach のパフォーマンスが低いため使用すべきではないという意味ではありません。 for ループと比較すると、 foreach はコードを削減しますが、 foreach は IEnumerable に依存します。実行時の効率は for ループよりも低くなります。ただし、ループ回数が不明なループを扱う場合や、ループ回数を計算する必要がある場合は、 foreach を使用する方が便利です。さらに、 foreach のコードはコンパイラ システムによって最適化された後、 for ループのループと似たものになります。 4. 二分探索 バイナリ検索は、値が一意で順序付けられている配列でよく使用されます。ここでは、for/while/forEach とのパフォーマンスの比較は行いません。
コードは次のとおりです。
大量のデータを扱うシナリオでは、バイナリ検索は非常に効率的ですが、不安定であるため、大規模なデータクエリでは若干不利になります。 5. ハッシュテーブル検索
ハッシュ テーブル検索の使用シナリオ:
ここでは、ハッシュを誰もが理解しやすいように、hashTable の最もシンプルなバージョンを紹介します。
この方法ではデータの競合が発生する可能性がありますが、解決策はあります。ここでは多くの知識ポイントが関係しているので、後でそれらを紹介する特別な記事を公開します。
Webワーカー最適化を使用する 上記の方法により、さまざまなアルゴリズムのパフォーマンスと適用シナリオがすでにわかっています。アルゴリズムを使用する場合、Web ワーカーを介してアルゴリズムを最適化し、プログラムが並列処理できるようにすることもできます。たとえば、大きな配列を複数のブロックに分割し、Web ワーカー スレッドに計算結果の処理を任せ、最後に結果をマージしてワーカーのイベント メカニズムを介してブラウザーに渡します。その効果は非常に顕著です。 要約する
さて、この記事は比較的シンプルですが、とても重要です。検索アルゴリズムについて、皆さんがより直感的に理解できるようになることを願っています。また、皆さんがより良い方法を見つけ、一緒に議論したり、アイデアを交換したりできるようになることを願っています。 |
<<: 2020 年の生体認証市場 - パンデミックによる業界の動向の変化
>>: YouTube でフォローすべき 5 人のデータ サイエンティストと機械学習エンジニア
分析するオムニチャネルコマースが拡大するにつれ、広告分析の世界は劇的な変化を遂げるでしょう。オンライ...
画像や動画の生成には AI に頼らなければならないと誰が言ったのでしょうか?プリンストン大学の新しい...
私たちは、企業や専門家が IoT についてどう考えているかを知りたいと思っていますが、一般の人々はど...
さまざまなスマート電子製品の普及により、ほとんどの人が知能についてある程度理解するようになりました。...
[[385658]]この記事では、広く使用されているアルゴリズムである「ブルーム フィルター アルゴ...
テクノロジーの発展に伴い、クラウド コンピューティング テクノロジーは進歩し続け、その目的も変化して...
今日では、それはもはや高尚な概念ではありません。スマートカーやスマートホームから、企業の資産管理機器...
なぜ良いチャットボットがないのでしょうか? これは私がかなり頻繁に、おそらく平均して週に 2 回は聞...
「ディープラーニングフレームワークは人工知能技術システムの真ん中にあり、下のチップと上のアプリケーシ...
次のプロジェクトに機械学習を取り入れるべき 4 つの理由をご紹介します。 理由その1 – マーケティ...
0 コードの大規模モデルを20 ドル未満で微調整できますか?プロセスも非常に簡単で、必要なステップは...
4月17日、市場調査会社リサーチ・アンド・マーケッツが最近発表したレポートでは、2025年までに世界...
コロナウイルスの発生前から、消費者の期待はすでに変化しており、小売業界に課題をもたらしていました。そ...