バイナリ検索アルゴリズムと時間計算量について簡単に説明し、バイナリ検索アルゴリズムを実装する

バイナリ検索アルゴリズムと時間計算量について簡単に説明し、バイナリ検索アルゴリズムを実装する

[[432404]]

バイナリ検索は、バイナリ検索アルゴリズムとも呼ばれ、シンプルで理解しやすい高速検索アルゴリズムです。たとえば、0 から 100 までの数字をランダムに書いて、何を書いたかを推測してもらいます。あなたが推測するたびに、その推測が高すぎるか低すぎるかを、あなたが正しく推測するまでお伝えします。

このアルゴリズムでは、検索対象の配列がソートされている必要があり、実装手順は次のとおりです。

  • 配列の中央の数字を選択する
  • 検索番号は中央の番号と比較されます。中央の番号より小さい場合は、中央の番号の左側のサブ配列を検索します。中央の番号より大きい場合は、中央の番号の右側のサブ配列を検索します。等しい場合は、検索が成功したと返されます。
  • 検索が成功または失敗するまで、前の手順を繰り返します。
  1. 関数binarySearch(items, item) {
  2. var 低 = 0,
  3. 高さ = アイテムの長さ - 1、
  4. 中間、要素
  5. (低<=高)の間{
  6. 中間 = Math.floor((low+high)/2)
  7. elem = アイテム[mid]
  8. if(要素 < 項目) {
  9. 低 = 中 + 1
  10. }そうでない場合 (要素 > 項目) {
  11. 高 = 中 - 1
  12. }それ以外{
  13. 戻る途中
  14. }
  15. }
  16. -1を返す
  17. }
  18.  
  19. // テスト
  20. var arr = [2,3,1,4]
  21. // クイックソート
  22. クイックソート(arr)
  23.  
  24. バイナリサーチ(arr, 3)
  25. // 2
  26.  
  27. バイナリサーチ(arr, 5)
  28. // -1

テスト成功

バイナリ検索のエラーが発生しやすいポイント:

  • ループ終了条件はlow <= highです。<=であることに注意してください。
  • midの値はMath.floor((low+high)/2)です。
  • 低 高 更新されるたびに、低 = 中 + 1 高 = 中 - 1

バイナリ検索の制限:

  • 対象オブジェクトは配列構造であり、要素は添え字を通じてランダムにアクセスされる。
  • 配列は順番どおりでなければならない
  • 配列が小さすぎて適していません。順次検索を使用してください。
  • 配列が長すぎるのは適切ではありません。配列には連続したメモリ空間が必要であり、配列が長すぎると保存に適しません。

時間計算量: O(logn)

空間計算量: O(1)

リートコード: https://leetcode-cn.com/problems/binary-search/solution/er-fen-cha-zhao-by-user7746o/

<<:  LiDARとTexas Instrumentsチップを搭載した最新のL3自動運転アーキテクチャの分析

>>:  1990年代生まれの中国人教授が、1年間でネイチャー誌に3本の論文を発表した。最初の量子ニューラルネットワークQuantumFlowはオープンソースです

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

A*、ダイクストラ、BFS 経路探索アルゴリズムの視覚的な説明

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

任澤平:「新インフラ」は時代の痕跡を刻む

【51CTO.comオリジナル記事】今年、我が国では間違いなく新しいインフラがホットな話題です。 2...

メリット、PyTorch中国語版の公式チュートリアルはこちら

[[275569]] PyTorchは近年人気のディープラーニングフレームワークですが、公式の中国語...

ハーバード大学コンピュータサイエンス学部の旗艦プロジェクトはAIをメンターとして採用している

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

67トピック、11528の質問、新しい中国の大規模モデルマルチタスクベンチマークCMMLUがリリースされました

MBZUAI、上海交通大学、Microsoft Research Asia は協力して、包括的な中国...

...

今後10年間で、AIは次の10の分野で世界に革命を起こすだろう

21 世紀に実現可能かつ実現されるであろう AI の驚くべき応用例をすべて紹介します。 AI が世界...

この式がブロックされると、AI IQはゼロになります

[[214770]]この記事はQuantum School(WeChat:quantumschool...

ニューラル ネットワークのデバッグにイライラしていませんか?ここに16のヒントがあります

[[201444]]ニューラルネットワークのデバッグは、専門家にとっても困難な作業です。数百万のパラ...

5G+AI: 未来に影響を与える新たなトレンド

7月9日、2020年世界人工知能会議クラウドサミットが正式に開幕しました。 AI という SF 用語...

機械学習の概念をインタラクティブに学習できる 5 つの視覚化 Web サイト

多くの人が理解していない点の 1 つは、機械学習アルゴリズムが舞台裏でどのように機能するかということ...

人工知能と自然言語処理技術

人工知能技術の発展に伴い、コンピューターを使って外国の文書を翻訳するなど、私たちの生活の多くのアプリ...

人工知能の分野は大きな需要があり、金融​​人材の将来性は有望である

[[408300]]重慶ビジネスデイリー・商油新聞記者が本について語る大学入試願書を記入中です。専攻...

光学行列乗算は人工知能をどう変えるのか

現在の AI の世界は電力を大量に消費し、計算能力が制限されています。モデル開発の軌跡は急速でしたが...