我有不規則間隔的時間數據,我需要將其轉換爲稀疏矩陣以便與圖形庫一起使用。用於將散列合併爲稀疏矩陣的高效算法
的數據目前是採用以下格式:
{
:series1 => [entry, entry, entry, entry, ...],
:series2 => [entry, entry, entry, entry, ...]
}
其中entry
是具有兩個屬性,timestamp
(Unix時間戳)和value
(一個整數) 我需要把它以這種格式的對象儘可能接近O(n)時間。
{
timestamp1 => [ value, value, nil ],
timestamp2 => [ value, nil, value ],
timestamp3 => [ value, value, value],
...
}
這裏每一行代表一個我有條目的時間點。每列表示一個系列(線圖上的一條線)。這就是爲什麼用零表示缺失值非常重要。
我有一些非常慢的實現,但這似乎是一個問題,之前已經解決,所以我希望有一個更有效的方法來做到這一點。
輸出中的時間戳是否需要按順序排列? – 2012-02-20 12:02:23
@NickBarnes是的,我最終需要它們,但我可以在合併後對它們進行排序。 – 2012-02-20 18:01:23
任何種類的東西都會打擊你的O(n)要求。但是,假設這不是問題,我很難想象如何創建比O(n)更慢的未排序版本......您能否提供一些關於您目前的解決方案的信息,所以我們知道我們打算打敗? – 2012-02-20 20:19:30