專利名稱:一種數(shù)據(jù)快速分類的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)的處理方法,尤其涉及一種數(shù)據(jù)分類的方法。
背景技術(shù):
隨著數(shù)據(jù)庫技術(shù)的迅速發(fā)展以及數(shù)據(jù)庫管理系統(tǒng)的廣泛應(yīng)用,人們積累的數(shù)據(jù)越來越多,這些數(shù)據(jù)對應(yīng)的屬性非常多,在程序中使用時,不能把全部的信息都記錄下來,一般只記錄數(shù)據(jù)的關(guān)鍵字隊列,在使用時,再通過關(guān)鍵字取相應(yīng)信息,在隊列中這些數(shù)據(jù)相同種類數(shù)據(jù)相臨。在系統(tǒng)中一般對不同類型的數(shù)據(jù)做不同的處理,需要將不同類的數(shù)據(jù)分開,放到不同的隊列中?,F(xiàn)有技術(shù)中,常見的數(shù)據(jù)分類方法是從隊列第二個數(shù)據(jù)開始遍歷隊列,依次取出數(shù)據(jù)類型信息,與前面的數(shù)據(jù)類型對比,如果數(shù)據(jù)類型相同,繼續(xù)向后找,如果數(shù)據(jù)類型不 同,則分出一類數(shù)據(jù),這個數(shù)據(jù)到開始處中間的數(shù)據(jù)為一類數(shù)據(jù)。上述數(shù)據(jù)分類的方法,當(dāng)數(shù)據(jù)量大,利用關(guān)鍵字取相應(yīng)信息有一定開銷時,分類的代價比較大,數(shù)據(jù)的查詢效率比較低。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明提供一種數(shù)據(jù)快速分類的方法,針對對象是一個ID隊列,隊列中記錄幾個種類的數(shù)據(jù),相同種類的數(shù)據(jù)相臨排放,將不同種類的數(shù)據(jù)分類到不同的隊列中。為了實現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)快速分類的方法,包括以下步驟
1)選擇一個相同種類的數(shù)據(jù)相鄰排放的數(shù)據(jù)隊列;
2)判斷該隊列的起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型是否相同,分出一個種類型的數(shù)據(jù);
3)將起始點(diǎn)指針指向下一類型數(shù)據(jù)的起始位置,判斷起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)是否相同,分出另一種類型的數(shù)據(jù)。其中,所述步驟2)進(jìn)一步包括以下步驟判斷起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型是否相同;如果所述起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型相同,則將起始點(diǎn)指針指向中點(diǎn)指針的位置,中點(diǎn)指針指向新的中點(diǎn);如果所述起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型不相冋,則將結(jié)束點(diǎn)指針指向中點(diǎn)指針的位直,中點(diǎn)指針指向新的中點(diǎn);循環(huán)上述步驟,直至起始點(diǎn)指針指向該類數(shù)據(jù)的最后位置。由于現(xiàn)有的數(shù)據(jù)庫表之間的結(jié)構(gòu)比較復(fù)雜,數(shù)據(jù)量比較大,所以只能取出對應(yīng)的ID隊列,再按ID從數(shù)據(jù)庫查詢對應(yīng)數(shù)據(jù)的信息。這里需要將不同性質(zhì)的數(shù)據(jù)分出來。查詢數(shù)據(jù)庫需要消耗一定的CPU,所以要盡量減少查詢數(shù)據(jù)庫的次數(shù)。采用本發(fā)明的方法對數(shù)據(jù)進(jìn)行分類,與現(xiàn)有的方法相比,該方法開銷小,效率高,減少了查詢數(shù)據(jù)庫的次數(shù)。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,并與本發(fā)明的內(nèi)容和實施例一起,用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中
圖I為根據(jù)本發(fā)明的數(shù)據(jù)快速分類的方法流程 圖2為根據(jù)本發(fā)明的分出一種類型數(shù)據(jù)的方法流程圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
在數(shù)據(jù)量十分龐大的情況下,記錄數(shù)據(jù)一般只記錄一個數(shù)據(jù)的ID,然后根據(jù)ID訪問數(shù)據(jù)。本方法主要針對的對象是一個ID隊列,隊列中記錄幾個種類的數(shù)據(jù),相同種類的數(shù)據(jù)相臨排放,比如{{83 55 76 90 89 82 } {I 23 12 8 } {122 100} ...},目標(biāo)是將不同種類的數(shù)據(jù)分類到不同的隊列中。圖I為根據(jù)本發(fā)明的數(shù)據(jù)快速分類的方法流程圖,下面將參考圖1,對本發(fā)明的數(shù)據(jù)快速分類的方法進(jìn)行詳細(xì)描述
首先,在步驟101,選擇一個數(shù)據(jù)隊列,該數(shù)據(jù)隊列具有多個不同類型的數(shù)據(jù),相同種類的數(shù)據(jù)相鄰排放;
在步驟102,設(shè)置該隊列的起始點(diǎn)指針(start)、中點(diǎn)指針(middle)和結(jié)束點(diǎn)指針(end),并分別指向隊列的起始點(diǎn)、中點(diǎn)和結(jié)束點(diǎn),start=隊列的起始點(diǎn);end=隊列的結(jié)束點(diǎn);middle= (start + end)/2 ;
在步驟103,利用起始點(diǎn)、中點(diǎn)和結(jié)束點(diǎn)指針,從隊列開始處開始,分出一個種類的數(shù)
據(jù);
在步驟104,起始點(diǎn)指針(start)指向下一個類型數(shù)據(jù)的開始位置,重復(fù)步驟103,分出
另一類數(shù)據(jù);
在步驟105,重復(fù)步驟103和104,依次分出該隊列所有的數(shù)據(jù)。圖2為根據(jù)本發(fā)明的分出一種類型數(shù)據(jù)的方法流程圖,下面將參考圖2,對本發(fā)明的數(shù)據(jù)快速分類的方法進(jìn)行詳細(xì)描述
首先,在步驟201,將起始點(diǎn)指針(start)、中點(diǎn)指針(middle)和結(jié)束點(diǎn)指針(end)分別指向隊列的起始點(diǎn)、中點(diǎn)和結(jié)束點(diǎn);start=隊列的起始點(diǎn);end=隊列的結(jié)束點(diǎn);middle= (start + end)/2 ;
在步驟202,檢查start,middle指針?biāo)傅臄?shù)據(jù)是否是同一類型數(shù)據(jù),如果類型相同,則進(jìn)行下一步驟;否則,轉(zhuǎn)到步驟204 ;
在步驟203,將start指向middle,轉(zhuǎn)到步驟205進(jìn)行處理;
在步驟204, end指向middle,轉(zhuǎn)到步驟202進(jìn)行處理;
在步驟205,判斷start是否指向該類數(shù)據(jù)的最后位置(start=end -I),如果start指向該類數(shù)據(jù)的最后位置,則進(jìn)入下一步驟;否則,轉(zhuǎn)到步驟202進(jìn)行處理;
在步驟206,分出隊列中所有的數(shù)據(jù),完成數(shù)據(jù)的分類。
本發(fā)明的方法,首先找出隊列中一個種類的數(shù)據(jù),再設(shè)三個指針(start, end,middle)分別標(biāo)識該類數(shù)據(jù)的開始點(diǎn),結(jié)束點(diǎn)和它們的中點(diǎn)。start = step ;end =隊列的結(jié)束點(diǎn) middle = (start + end)/2。檢查start,middle是否是同一數(shù)據(jù)類型,類型相同則start =middle ;若類型不同,end = middle; ;middle = (start + end)/2。循環(huán)該過程直到 start = end -I。這樣就找到start指向該類數(shù)據(jù)的最后位置,end指向下一個類型數(shù)據(jù)的開始位置。Step,start之間的數(shù)據(jù)就是要找出的第一類數(shù)據(jù),從而分出一類數(shù)據(jù),重復(fù)上述步驟,即可快速地將隊列中的數(shù)據(jù)進(jìn)行分類。本領(lǐng)域普通技術(shù)人員可以理解以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,對于本領(lǐng)域的技術(shù)人員 來說,其依然可以對前述各實施例記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)快速分類的方法,包括以下步驟 1)選擇ー個相同種類的數(shù)據(jù)相鄰排放的數(shù)據(jù)隊列,將起始點(diǎn)指針、中點(diǎn)指針和結(jié)束點(diǎn)指針分別指向該數(shù)據(jù)隊列的起始點(diǎn)、中點(diǎn)和結(jié)束點(diǎn); 2)判斷該隊列的起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型是否相同,分出一個種類型的數(shù)據(jù); 3)將起始點(diǎn)指針指向下ー類型數(shù)據(jù)的起始位置,判斷起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)是否相同,分出另一種類型的數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的數(shù)據(jù)快速分類的方法,其特征在于,所述步驟2)進(jìn)ー步包括以下步驟判斷起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型是否相同;如果所述起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型相同,則將起始點(diǎn)指針指向中點(diǎn)指針的位置,中點(diǎn)指針指向新的中點(diǎn);如果所述起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型不相同,則將結(jié)束點(diǎn)指針指向中點(diǎn)指針的位置,中點(diǎn)指針指向新的中點(diǎn);循環(huán)上述步驟,直至起始點(diǎn)指針指向該類數(shù)據(jù)的最后位置。
全文摘要
一種數(shù)據(jù)快速分類的方法,包括以下步驟選擇一個相同種類的數(shù)據(jù)相鄰排放的數(shù)據(jù)隊列,將起始點(diǎn)指針、中點(diǎn)指針和結(jié)束點(diǎn)指針分別指向該數(shù)據(jù)隊列的起始點(diǎn)、中點(diǎn)和結(jié)束點(diǎn);判斷該隊列的起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)類型是否相同,分出一個種類型的數(shù)據(jù);將起始點(diǎn)指針指向下一類型數(shù)據(jù)的起始位置,判斷起始點(diǎn)指針與中點(diǎn)指針?biāo)傅臄?shù)據(jù)是否相同,分出另一種類型的數(shù)據(jù)。采用本發(fā)明的方法對數(shù)據(jù)進(jìn)行分類,與現(xiàn)有方法相比,開銷小、效率高,減少了查詢數(shù)據(jù)庫的次數(shù)。
文檔編號G06F17/30GK102662996SQ201210067760
公開日2012年9月12日 申請日期2012年3月15日 優(yōu)先權(quán)日2012年3月15日
發(fā)明者李俊杰, 李建兵, 鄒偉 申請人:北京播思軟件技術(shù)有限公司