我有一個64個結構的數組,它擁有相當數量的數據(結構大約是128個字節,因此需要重新構建8192個字節)。該數組需要根據每個結構中的單個無符號字節進行排序。我的數據有一個有趣的屬性,它可能會有許多重複的排序值 - 這意味着如果你擺脫了所有重複,數組可能只有10個獨特的元素長,但這不是給定的。用字節比較排序結構的最佳排序算法?
一旦排序,我需要創建一個堆棧來存儲每個唯一的字節運行開始的大小和類型: 所以如果我結束了排序的值: 4,4,4,9,9,9, 9,9,14,14 堆棧將是: (4,3),(9,5),(14,2)
我覺得在這些條件下我可以執行一些很好的優化。如果我做了堆排序,我可以在排序時創建棧,但是這會比qsort更快,然後建立棧?由於我使用的大型結構,任何排序算法會運行得慢嗎?我可以做的任何優化,因爲我只比較字節?
順便說一句:語言是C++
謝謝。
你會用什麼做一個堆棧,自制或內置的東西? – Skurmedel 2011-01-23 17:30:02
我想要最快的,所以我想它會是一個簡單的自制的使用固定緩衝區。 – Pubby 2011-01-23 17:32:37
您是否需要實際排序,或者您是否只需要存儲大小和類型的「堆棧」? – ThomasMcLeod 2011-01-23 18:32:01