2011-11-19 78 views
0

我正在嘗試將大於10000的桶的排序提高。我不太清楚爲什麼我的代碼在大量數據上表現不佳。 我對大小爲n的陣列桶排序算法:桶中的桶索引排序

  1. 創建大小爲n的鏈表的陣列
  2. 計算範圍爲數字

  3. 計算間隔針對每個桶

  4. 計算指數爲桶,在哪裏把特定號碼 (問題:我通過不斷減去間隔的數量和增量計數器,每次我減去interval.Counter是索引計算索引) 我相信這種尋找索引的特殊方式需要很長時間才能獲得大量數據。 我該如何改進桶的查找索引?

P.S.我聽說有辦法預處理數組並找到最小和最大數組數。然後通過從最小值減去特定數字來計算索引。指數=數分鐘。我沒有完全理解計算指數。 問題: 1.這是找到索引的有效方法嗎? 2.我如何處理案件時,我有大小4的數組,和數字31,34,51,56? 31去桶0,34去桶3,51和56怎麼樣? 3.有沒有其他方法可以計算指數?

回答

0

您可以通過Division更快地找到您的索引。索引=值/間隔。如果第一個時間間隔從'min'而不是0開始,那麼使用(value-min)作爲分子。