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

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

[[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はオープンソースです

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

推薦する

インテリジェント チャットボットを自分で開発するための完全ガイド (完全なソース コード付き)

1. はじめに人工知能の時代において、独自のインテリジェントな質問応答ロボットを開発することは、一...

...

AIと機械学習の詐欺を見抜くための7つの原則

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

調査によると、ChatGPTはプログラミングの質問に答える際に50%以上のエラー率があることが判明

米パデュー大学の調査によると、OpenAIが開発した人工知能チャットボット「ChatGPT」は、ソフ...

...

...

13歳の天才少年がAIスピーカーを開発。2010年代以降の世代は単純ではない

現代のティーンエイジャーにとってクールなものは何でしょうか?おそらくそれは AJ シューズを履くこと...

GPT-4を使用すると、成績の悪い生徒は成績の良い生徒よりも有利になる

学生が AI を使用して「不正行為」を行うことが許可された場合、成績分布はどのように変化するでしょう...

ロボット工学が建設業界の新時代を告げる

建設業界は現在、デジタル革新が業界の方向性をますます推進する中で、大きな変革期を迎えています。ロボッ...

ディープラーニングと靴を組み合わせると、誰かがそれを使ってストレスレベルを検出しようとします。ワイヤレス操作、84%の精度

ビッグデータダイジェスト制作著者: カレブ現代人の生活プレッシャーはますます大きくなっていると言わざ...

Baichuan Intelligence が数千億のパラメータを持つ大規模モデルをリリース、その中国の能力は GPT-4 を上回る!

制作:51CTO テクノロジースタック(WeChat ID:blog) 「今年中にChatGPTのレ...

電子商取引で人工知能を効果的に活用する10の方法

[[388530]] [51CTO.com クイック翻訳] 「人工知能」は今日では人気の用語となり、...

HanSight 万小川: 国内のセキュリティベンダーはセキュリティ人工知能を推進すべき

[51CTO.com より引用] RSA カンファレンスは、世界の IT セキュリティ動向のバロメー...

AIはITに顧客体験の向上における優位性を与える

パンデミックにより、IT 部門がデジタル顧客体験を向上させる必要性がさらに高まりました。 IT リー...

肖像ラベルシステムの構築と運用実践

1. ポートレートラベルシステムQunarは、事業開発プロセスごとに独立したポートレートラベリングシ...