我有一個CSV文件生成的客戶對象的數組:計算平均銷售額在客戶陣列中的每個客戶(新兵)
日期,名稱,銷售
03/01,阿爾法,110
03/23,阿爾法,25
01/02,Beta版,135
...
,需要一種有效的方式,以創造獨特的客戶與中位數銷售的新數組並將其導出回CSV。可能有多達50萬條記錄和100,000個獨特客戶!
我有一個CSV文件生成的客戶對象的數組:計算平均銷售額在客戶陣列中的每個客戶(新兵)
日期,名稱,銷售
03/01,阿爾法,110
03/23,阿爾法,25
01/02,Beta版,135
...
,需要一種有效的方式,以創造獨特的客戶與中位數銷售的新數組並將其導出回CSV。可能有多達50萬條記錄和100,000個獨特客戶!
-將您的源數據分割爲每個客戶的集合。
對每一個客戶:
--sort通過銷售
--IF記錄數爲奇數,中間指數在返回銷售
--IF記錄數爲偶數,則返回中間兩側的記錄平均值
- 將返回的記錄放入結果數組中。
您能否提供一些示例代碼來指引我朝着正確的方向 - 仍在學習! – matekus
在這樣的情況下,我會用:
Dictionary<string, List<int>> dict;
的關鍵是客戶的名稱(假定它們是唯一的,以其他方式轉讓某種獨特的ID?) 值是銷售的每一個列表顧客。填充完這個數組後,你可以在排序和得到中間元素(如上所述)
或求和除以元素的數量以獲得中值。
(這是錯誤的)
排序(使用比較方法)需要O(nlog n)時間,其中n是要排序的列表的長度。
有選擇算法,它可以返回第k個最小值爲O(N),檢查以下
總結列表併除以計數是平均值(平均值)。你不會(總是)與中位數相同。 http://en.wikipedia.org/wiki/Median –
我應該考慮使用內聯F#,如果是這樣,如何? – matekus
使用Excel維基百科鏈接呢? :D – Bas