2012-05-02 35 views
0

我有一個給定的日期字符串數組,格式爲dd/mm/yyyy按照基數排序的排序日期

我想通過月份和年份日期排序在遞增與基數排序,但我不知道到底如何,因爲它能夠時不時基於每月

的例如數量最多我有以下的數組: 16/04/2012 2013年1月5日 01/02/2012 二○一二年十月一十一日 2012年1月12日

通常的排序後的結果是: 01/02/2012 16/04/2012 01/05/2013 10/11/2012 01/12/2012

而我想要的是: 01/02/2012 16/04/2012 2012年10月11日2012年1月12日2013年1月5日 2012年第一次那麼2013

我還沒有使用代碼還沒有,因爲我不知道算法是如何工作的,我只能用做出1個基數排序

+0

這是功課嗎?如果是這樣,請標記爲這樣。 –

回答

1

想想排序日期而不是你有的表示,而是在一個單獨的排序鍵上。例如,2012年2月1日創建排序鍵20120201.現在數字的順序從大到小排列,您可以將排序鍵視爲數字,並將基數排序應用於它們。

如果您願意,您不必顯式創建排序鍵,但是您必須修改爲一輪基數排序選擇數字的代碼,以強制執行正確的順序。

+0

我認爲這應該是正確的答案,因爲這是一個作業問題。它有助於 - 因爲你自己搜索了一下。一個好的起點是維基百科:http://en.wikipedia.org/wiki/Radix_sort,或者這個網頁例如:http://www.cs.auckland.ac.nz/~jmor159/PLDS210/radixsort.html – Yuri

+0

謝謝,我正在嘗試使用strtok – mollyeah

1

您將需要申請radix排序兩次,第一次在本月,然後在第一年。如果您只使用一次基數排序,那麼您必須在年份中進行排序,但是同一年內您的月份將不會被排序。也許你可以在一年內的幾個月內使用不同的算法,或者根本不使用基數排序。爲什麼只能進行一次排序有特別的理由嗎?