Python のデータ構造とアルゴリズム - 順序付きリストの維持と二分

Python のデータ構造とアルゴリズム - 順序付きリストの維持と二分

[[402075]]

序文

Bisect は、リストをソートしたままリストに要素を挿入するアルゴリズムを実装します。

この記事では、bisectライブラリを使用してリストを効率的に操作する方法を詳しく紹介します。

注文された挿入物

まず、bisect ライブラリがリスト挿入をどのように実装するかを見てみましょう。具体的なコードは次のとおりです。

  1. インポート二分
  2.  
  3. a = [7, 5, 4, 1, 9, 8, 2, 3, 6, 0, 5]
  4. 印刷(a)
  5. 新しい_a = []
  6. ai場合:
  7. 位置 = bisect.bisect(new_a, i)
  8. bisect.insort(new_a, i)
  9. print(位置、new_a)

実行後の効果は次のようになります。

ご覧のとおり、bisect は挿入用に自動的にソートされ、position は挿入のインデックス位置になります。もちろん、このような挿入の場合は、リストを直接構築してから並べ替える方が速い場合があります。ただし、これは短いリストの場合にのみ非常に高速です。非常に長いリストの場合、上記の挿入ソートを使用すると、特に 2 つのリスト メンバーを比較すると計算オーバーヘッドが大きくなる場合に、時間とメモリを大幅に節約できます。

重複値の処理

実際のリスト処理では、重複した値を処理する場合があります。上記のように、デフォルトでは重複値の右側に余分な 5 が挿入されます。これは、insort_right() 関数を使用するのと同じです。同様に、左側では insort_left() 関数を使用できます。

  1. インポート二分
  2.  
  3. a = [7, 5, 4, 1, 9, 8, 2, 3, 6, 0, 5]
  4. 印刷(a)
  5. 新しい_a = []
  6. ai場合:
  7. 位置 = bisect.bisect_left(new_a, i)
  8. bisect.insort_left(new_a, i)
  9. print(位置、new_a)

実行後の効果は次のようになります。

読者は上の 2 つの画像を比較すると、最後の行のインデックスが変わることがわかります。ご覧のとおり、1 つは 6 で、もう 1 つは 5 です。積極的に変更したため、重複した値はデフォルトで左側に挿入されます。

<<:  アメリカ人教授がAI会議での不正行為を暴露:著者は査読者と共謀し、ゴミ論文も査読を通過

>>:  データ分析技術:エッジ人工知能の応用

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

推薦する

AIは現実世界に対応できる準備ができているでしょうか?

人工知能技術は、今日の状況に対応し、現実世界に適用するのに苦労しています。テクノロジーに興味があるな...

人間と踊る!中国の6団体が制作したヒューマノイドロボットがストリートショーに進出

注意してください、小帥は振り向きましたが、スウェットシャツのフードの中には何もありませんでした。さて...

...

ARMの機能によりIBMの包括的なAI自動化ポートフォリオが強化される

Turbonomic の買収計画により、IBM はビジネスと IT 全体にわたって人工知能の自動化機...

...

sklearnのトレーニング速度が100倍以上向上、米「Fanli.com」がsk-distフレームワークをオープンソース化

この記事では、Ibotta (「Rebate Network」の米国版) の機械学習およびデータ サ...

健康コードがないと旅行するのは難しいですか?顔認識により健康コードのバリアフリー利用が可能に

「公共交通機関では健康コードの提示が求められますが、提示できない場合はどうすればよいですか?」予防と...

データ注釈サービスのアウトソーシングによって AI モデルはどのように強化されるのでしょうか?

人工知能 (AI) と機械学習 (ML) の分野では、基礎はデータにあります。データの品質、精度、深...

AI ソフトウェアは教育分野にどのように役立つのでしょうか?

[[280714]]人工知能は世界に大きな影響を与えます。 2025年までに、AIソフトウェアの総...

Adobe と機械学習が出会う: 新しい Photoshop が複数の新しい AI 機能を導入

Adobe Max 2021 イベントは予定通り開催されます!このイベントの最も興味深い特徴の 1 ...

SQL Server 2005 のデータ マイニング アルゴリズム拡張メソッド

SSAS は 9 つのデータ マイニング アルゴリズムを提供していますが、実際の問題に基づいて適切な...

人工知能はより安全で環境に優しい交通システムの構築に役立つ

人工知能は、運輸業界が直面している多くの複雑な課題を解決するための最適なテクノロジーとなっています。...

科学研究だけでなく、水中ロボットの消費者への応用も有望である。

近年、政策、技術、資金の推進により、我が国のロボット開発は目覚ましい成果を上げています。「空の月まで...

スタンフォード大学の10のグラフはAI開発の新たなトレンドを分析している

スタンフォード大学のAI 100のAI Indexプロジェクトは、人工知能の活動と進歩を追跡し、人工...

マッキンゼー:2024年にGenAIが人工知能のビジネス界を支配する

人工知能(AI)は2023年に世界的な革命を引き起こし、多くの企業がこの高度なテクノロジーを自ら習得...