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

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

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

ブログ    

推薦する

フードデリバリー広告向け大規模ディープラーニングモデルのエンジニアリング実践

著者: Yajie Yingliang、Chen Long 他導入美団のフードデリバリー事業が成長を...

自然言語処理にディープラーニングを使用するにはどうすればよいでしょうか?練習チェックリストはこちら

[[198324]]導入この記事は、自然言語処理 (NLP) にニューラル ネットワークを使用する方...

人工知能(AI)がビデオマーケティングを変える

ビデオ マーケティングで人工知能 (AI) を使用すると、企業はユーザーの好みを分析してカスタマイズ...

DevOps で AI を使用して非線形スケーリングを実現する方法

テクノロジーが飛躍的に進歩するにつれ、AI はスピード、スケーラビリティ、品質、柔軟性を求めるあらゆ...

金融を専攻する学生は人工知能をどのように学ぶべきでしょうか?

[[209094]]大学時代の専攻は自動制御で、当時は人工知能の冬でした。ある日、ニューラルネット...

AWS 上でディープラーニングホストを構築する (Windows 版)

この記事では、Amazon EC2 P2 インスタンスをレンタルして使用する方法について簡単に説明し...

「新世代人工知能倫理規定」が発表:人工知能のライフサイクル全体に統合し、データプライバシーのセキュリティとアルゴリズムの倫理に重点を置く

9月26日、国家新世代人工知能ガバナンス専門委員会は「新世代人工知能倫理規範」(以下、「規範」という...

...

多様性がAI戦略の成功の鍵となる理由

機械学習と人工知能に関しては、スキャンダルが後を絶ちません。過去数ヶ月、マイクロソフトのジャーナリス...

...

プロの債権回収業者は失業するのでしょうか?人工知能はこうやって人々にお金を返済させる

他人に代わって借金を回収する「プロの債権回収業者」というと、恐ろしいイメージを抱く人も多いだろう。 ...

TensorFlow を使用してシンプルなロジスティック回帰モデルをゼロから構築する

TensorFlow は Python ベースの機械学習フレームワークです。 Coursera でロ...

人工知能はビッグデータ天体物理学の時代へのマスターキーとなるのでしょうか?

[[387017]] 01 まさに必要: ビッグデータ天体物理学の時代が到来観測技術の発展により、...

...

世界初のグラフェン半導体がネイチャー誌に掲載され、中国チームがムーアの法則の寿命を10年延長しました!

シリコンはすべての電子機器の終焉をもたらすのか?この記録はグラフェンによって破られました!天津大学と...