專利名稱:一種字符串的排序方法
技術領域:
本發(fā)明涉及數據處理,尤其涉及一種字符串的排序方法。
背景技術:
在科技不斷發(fā)展的今天,計算機的應用領域越來越廣,但是受硬件和存儲空間大小的限制,如何在有限的資源條件下,提高軟件的運行速度是軟件開發(fā)人員一直努力的方向。在眾多方法中,對信息的排序成為程序設計人員考慮的因素之一,排序方法選擇得當與否直接影響程序執(zhí)行的速度和輔助存儲空間的占有量,進而影響整個軟件的性能。排序是程序設計中的一個重要的操作,排序過程是將一個記錄的任意序列,在一定規(guī)則的約束下,生成一個有序的序列。排序可以分為內排序和外排序。內部排序是指整個排序過程不需要訪問外存便能完成;外部排序則是整個序列的排序過程不可能在內存中完成,通常這種情況下記錄的數量很大。排序算法主要有插入排序、選擇排序、交換排序、歸并排序和分配排序。這些排序即可應用于常規(guī)的數值排序,也可應用于字符串的排序。但是對字符串排序,存在效率不高、無法滿足實際開發(fā)中遇到的情況,所以需要專門處理字符串的字符串排序算法。最常見的字符串排序算法有字典排序。Trie樹又名字典樹,從字面意思即可理解,這種樹的結構像英文字典一樣,相鄰的單詞一般前綴相同,之所以時間復雜度低,是因為其采用了以空間換取時間的策略。請參閱圖1,為一個針對字符串排序的Trie樹(我們假設在這里字符串都是小寫字母),每個結點有26個分支,每個分支代表一個字母,結點存放的是從root節(jié)點到達此結點的路經上的字符組成的字符串。將每個字符串插入到trie樹中,到達特定的結尾節(jié)點時,在這個節(jié)點上進行標記,如插入〃pls〃和”vn”,第一個字母為p,沿著P往下,然后第二個字母為1,沿著I往下,第三個為S,沿著s往下,由于字符串最后一個字符為’ \0’,因而結束,不再往下了,然后在這個節(jié)點上標記pis. count++,即其個數增加1.同理” vn”。Trie樹典型應用是用于統(tǒng)計和排序大量的字符串(但不僅限于字符串),所以經常被搜索引擎系統(tǒng)用于文本詞頻統(tǒng)計。它的優(yōu)點是最大限度地減少無謂的字符串比較,查詢效率比哈希表高。但是它的應用主要是針對大量的數據,對于數據量比較小的排序,這種排序方法不適合。如在某些系統(tǒng)開發(fā)過程中,需要對一些特殊的字符串進行排序,需要排序的字符串有如下特點1.長度一般都在N (N〈=50)個字符以內;2.有很大一部分字符串是由數字字符組成而且長度不一 ;3.需要進行排序的字符串在M(M〈=10000)個以內;4.對某些系統(tǒng),需要特殊的排序方式。
發(fā)明內容
針對現有技術的特點,本發(fā)明的目的是提供一種字符串的排序方法,解決在某些系統(tǒng)中對數據量比較小的字符串進行排序不適合的問題。為了實現上述目的,本發(fā)明的技術方案為一種字符串的排序方法,包括如下步驟(1)對待排序字符串數組按字符串的長度大小進行排序;(2)在已經按字符串的長度排好序的字符串數組中,對字符串長度相同的字符串數組按字符串值的大小進行排序。優(yōu)選地,在步驟(I)中,字符串長度越大,則字符串越大。優(yōu)選地,在步驟(2)中,字符串值越大,則字符串越大。與現有技術相比,本發(fā)明的字符串排序方法能夠實現在數據量不大的情況、對字符串的現實或者使用有特點要求的情況下,對字符串進行排序,使用這種排序方法方便簡潔,直觀,更符合用戶的觀點。比如在進行網元直連維護的時候,需要添加用戶賬號來進行維護,表示賬號的字符串就滿足上面這種字符串的特點,需要對它進行排序,讓這些賬號顯示得有規(guī)律,讓用戶看起來更友好。
下面結合附圖對本發(fā)明作進一步的詳細說明。圖1是現有技術的Trie樹示意 圖2是本發(fā)明的流程框 圖3是本發(fā)明的按字符串長度排序流程框 圖4是本發(fā)明的按字符串值排序流程框圖。
具體實施例方式請參閱圖2,先對待排序字符串數組進行按長度大小排序,再對該排好序的數組,長度相同的按值大小排序。請參閱圖3,按長度排序,規(guī)則是字符串長度越大,則字符串越大;得到的是按長度排好序的字符串數組。例如
待排序字符數組
權利要求
1.一種字符串的排序方法,其特征在于,包括如下步驟(1)對待排序字符串數組按字符串的長度大小進行排序;(2)在已經按字符串的長度排好序的字符串數組中,對字符串長度相同的字符串數組按字符串值的大小進行排序。
2.根據權利要求1所述的字符串的排序方法,其特征在于,在步驟(I)中,字符串長度越大,則字符串越大。
3.根據權利要求1所述的字符串的排序方法,其特征在于,在步驟(2)中,字符串值越大,則字符串越大。
全文摘要
本發(fā)明公開了一種字符串的排序方法,包括如下步驟(1)對待排序字符串數組按字符串的長度大小進行排序;(2)在已經按字符串的長度排好序的字符串數組中,對字符串長度相同的字符串數組按字符串值的大小進行排序。本發(fā)明能夠實現在數據量不大的情況、對字符串的現實或者使用有特點要求的情況下,對字符串進行排序,使用這種排序方法方便簡潔,直觀,更符合用戶的觀點。比如在進行網元直連維護的時候,需要添加用戶賬號來進行維護,表示賬號的字符串就滿足上面這種字符串的特點,需要對它進行排序,讓這些賬號顯示得有規(guī)律,讓用戶看起來更友好。
文檔編號G06F17/30GK103020272SQ201210577739
公開日2013年4月3日 申請日期2012年12月27日 優(yōu)先權日2012年12月27日
發(fā)明者何睿, 藍進華, 李艷平 申請人:廣東佳和通信技術有限公司