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

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

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

ブログ    
ブログ    

推薦する

...

...

2021年チューリング賞発表:高性能コンピューティングの先駆者であり、TOP500スーパーコンピューティングリストの共同創設者であるジャック・ドンガラが受賞

丸一日待った後、ついに答えが明らかになりました!先ほど、2021年のチューリング賞が発表されました。...

一般的な基本的なソートアルゴリズムを今回から理解しましょう

[[383742]]この記事はWeChatの公開アカウント「Beta Learns JAVA」から転...

AI がデータセンターを持続可能性の原動力に変える方法

これまで多くの技術進歩の基盤となってきたデータセンターは、現在、インフラストラクチャ プロバイダーだ...

ChatGPTプラグインがもたらすセキュリティ上の課題

OpenAI の ChatGPT は人工知能言語モデルにおいて重要な進歩を遂げ、人間が特定のテキスト...

人工知能分野で急成長を遂げている企業の主な問題点

AI 分野で急成長しているビジネスを運営し、成長させるには、プロセスの構築、顧客の成功、人材の獲得、...

...

データ サイエンティストが知っておくべき 10 のディープラーニング アーキテクチャ

近年、ディープラーニングは勢いを増しており、その進歩のペースについていくことがますます困難になってき...

2021年、ついにスマートグラスの普及が到来

[[391934]]スマートグラスの技術は長い間、SF作家たちの想像力をかき立ててきました。理論上、...

21 世紀においてインテリジェント オートメーションは誇張されすぎているのでしょうか?

[[427549]] Analytics Insight では、21 世紀においてインテリジェント...

業界に革命を起こすスマートパッケージング技術トップ10

ほとんどの人がサプライチェーン技術について考えるとき、パッケージングは​​おそらく最初に思い浮かぶも...

GPT-4Vはキーボードとマウスを使ってインターネットを閲覧することを学習し、人間は投稿したりゲームをしたりしているのを観察した。

ついに、GPT-4V がコンピューターを自動的に操作することを学習する日が来ました。マウスとキーボー...

速達荷物を受け取るには顔認証しか方法がないのでしょうか?上海郵政:申通、菜鳥郵政などと面談し、集荷の同意を得る必要がある

[[404490]]宅配業者があなたに電話もせずに荷物を集荷場所に「投げる」という経験をしたことはあ...

...