我正在手動滾動一些視覺化算法。
提取時間序列的最小值/最大值是 $ O(n) $ , 對於 n 個條目。
如果我想要 25% 和 75% 的標記,我可以使用 $ O(n \log n) $ 時間排序,然後得到 25% 和 75% 的分數。
但是,有沒有辦法線上性時間內做到這一點?
是的,有一種方法可以線上性時間內找到未排序列表中的第 k 個最大元素。但是,根據您使用的程序,實施該算法可能不會提高性能。內置sort
函式可能在 C 中進行了優化,因此速度非常快。
引用自:https://quant.stackexchange.com/questions/4145