データ構造#
データをどのように持つかによって、探索時などに計算量が大きく変わることがある。
大規模なデータを効率的に処理するにあたって必要になる。
例
listは検索(
"hoge" in List)するとき\(O(n)\)(線形探索)setは検索するとき\(O(1)\)
listでsortすると、要素数の分だけ計算量かかる
heapq(ヒープキュー、優先度つきキュー)で保持すると、最小値や最大値しか取り出せないが、頻繁に最小値や最大値を参照するときはlistで保持して毎回sortするより効率がいい(ABC141D - Powerful Discount Tickets)
参考