ソートされたリストのリストをバイナリ検索する方法ですか?
のは、私はリストのリストを持っていると仮定しましょう:私は内側のリストに3D要素によって、それをソートしてきましたPython - リストのソートされたリストのバイナリ検索
list = [['A', 'B', 3], ['C', 'D', 1], ['E', 'F', 2]]
:
list = sorted(list , key=itemgetter(2))
と今リストが
[['C', 'D', 1], ['E', 'F', 2], ['A', 'B', 3]]
そしてあります今、ソートされた内部リストの要素を使用して、バイナリ検索(O(log(n))時間の複雑さ)でソートされたリストをどのように検索できますか?
同様findBy(list, index_of_inner_list, value_of_inner_list_to_find)
外リストは巨大です。内側のリストはlen 50です。内側のリストに関連する条件に基づいて外側のリストからいくつかの要素を抽出するために多くのクエリを行う必要があります。私はbisect
について考えていたが、内側の配列はそれが問題になると思う。
これを読んだことがありますか?https://stackoverflow.com/questions/42146482/using-bisect-on-list-of-tuples-but-compare-using-first-value-onlyここにいくつかの提案があります任意のキー機能を持つ二等分実装の場合 – schwobaseggl
[bisect](https://docs.python.org/3.6/library/bisect.html#other-examples)のドキュメントページの最後の例を見てください。それはあなたのために起こっているように見えますか? – glibdud
@glibdudこの例では、OPが明示的に求めているbisectの 'O(log_N)'性能を破棄するキーから新しいリストを構築します。 – schwobaseggl