質問はほとんどタイトルにありますが、リストLがあるとします
L = [1,2,3,4,5]
ここで min(L) = 1 です。次に、4 を削除します。最小値は 1 のままです。次に、2 を削除します。最小値は 1 のままです。次に、1 を削除します。最小値は現在 3 です。次に、3 を削除します。最小値は現在 5 です。
min(L) を実行したり、リスト全体をスキャンしたりすることなく、リストの最小値を常に追跡する良い方法があるかどうか疑問に思っています。
リストからアイテムを実際に削除するには、他のすべてを移動する必要があるため、効率が低下します。リストを毎回再ソートするのもコストがかかります。これを回避する方法はありますか?