欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用數(shù)組對(duì)來合并有序列表的制作方法

文檔序號(hào):9510123閱讀:434來源:國(guó)知局
使用數(shù)組對(duì)來合并有序列表的制作方法
【專利說明】使用數(shù)組對(duì)來合并有序列表
[0001]背景
[0002]列表是元素序列。有序列表是根據(jù)特定排序優(yōu)先級(jí)(諸如字母順序、遞增值等)來排序的列表。有序列表保證對(duì)于每一對(duì)連續(xù)元素,先前元素滿足相對(duì)于后續(xù)元素的特定排序優(yōu)先級(jí)。例如,假設(shè)列表包括整數(shù)序列,并且排序優(yōu)先級(jí)是遞增值排序優(yōu)先級(jí)。在這種情況下,如果對(duì)于序列中的每一對(duì)連續(xù)整數(shù),后續(xù)整數(shù)等于或大于先前整數(shù),則整數(shù)列表將根據(jù)遞增值來排序。每一有序列表包括首元素,該首元素是排序優(yōu)先級(jí)中的最高優(yōu)先級(jí),并由此是有序列表中的第一元素。每一有序列表還包括尾元素,該尾元素是排序優(yōu)先級(jí)中的最低優(yōu)先級(jí),并由此是有序列表中的最后元素。
[0003]存在數(shù)十年前開發(fā)的用于將輸入有序列表合并成根據(jù)與輸入有序列表相同的排序優(yōu)先級(jí)來排序的合并有序列表的特定方法(在此被稱為“優(yōu)先級(jí)排隊(duì)方法”)。該優(yōu)先級(jí)排隊(duì)方法使用優(yōu)先級(jí)隊(duì)列來制定合并列表,并且涉及排序操作的多個(gè)階段。在第一階段中,來自所有輸入有序列表的每一首元素被放置在優(yōu)先級(jí)隊(duì)列中,并由此優(yōu)先級(jí)隊(duì)列中的每一空間都對(duì)應(yīng)于輸入有序列表。在每一排序階段中,通過將優(yōu)先級(jí)隊(duì)列內(nèi)的最高優(yōu)先級(jí)元素移至合并有序列表的末尾作為該合并有序列表的新尾元素來將合并有序列表擴(kuò)展一個(gè)元素。來自輸入有序列表的與通過該移動(dòng)騰空的空間相對(duì)應(yīng)的未經(jīng)處理的最高優(yōu)先級(jí)元素然后通過將該元素復(fù)制到被騰空空間中來處理,由此完成排序階段。
[0004]概述
[0005]根據(jù)本文描述的至少一個(gè)實(shí)施例,使用數(shù)組對(duì)來分多個(gè)階段從多個(gè)輸入有序列表中制定合并有序列表。最初,用輸入有序列表來連續(xù)填充第一數(shù)組。在第一階段中,將第一和第二輸入有序列表合并成第二數(shù)組中的第一中間合并列表。每一后續(xù)階段合并從先前階段產(chǎn)生的先前中間合并列表和第一數(shù)組中的下一輸入有序列表,以生成下一中間合并列表或者最終合并有序列表(如果第一數(shù)組中不再有輸入)。中間合并列表從一個(gè)階段到下一階段在第一數(shù)組和第二數(shù)組之間交替。
[0006]在一些實(shí)施例中,合并技術(shù)對(duì)于在順序讀取和寫入操作方面是更高效的現(xiàn)代微處理器可以是特別高效的,因?yàn)楹喜⒖赏ㄟ^數(shù)組對(duì)在順序操作中執(zhí)行。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或基本特征,也不旨在被用來幫助確定所要求保護(hù)的主題的范圍。
[0007]附圖簡(jiǎn)述
[0008]為了描述能夠獲得上述和其它優(yōu)點(diǎn)和特征的方式,各實(shí)施例的更具體的描述將通過參考各附圖來呈現(xiàn)??梢岳斫?,這些附圖只描繪了示例實(shí)施例,并且因此不被認(rèn)為是對(duì)其范圍的限制,將通過使用附圖并利用附加特征和細(xì)節(jié)來描述和解釋各實(shí)施例,在附圖中:
[0009]圖1抽象地示出其中可采用本文描述的一些實(shí)施例的計(jì)算系統(tǒng);
[0010]圖2示出根據(jù)本文描述的原理的用于制定合并有序列表的方法的流程圖;
[0011]圖3示出了用于處理圖2的排序操作的每一排序階段的方法的流程圖;
[0012]圖4A到4E示出了與一示例的第一排序階段相關(guān)聯(lián)的五個(gè)順序排序狀態(tài)操作,其中第一輸入有序列表和第二輸入有序列表被組合成第一中間合并有序列表;
[0013]圖5A到5J示出了與該示例的第二排序階段相關(guān)聯(lián)的十個(gè)順序排序狀態(tài)操作,其中第一中間合并有序列表與第三輸入有序列表合并以形成第二中間(并且可能是最終)合并有序列表;
[0014]圖6示出了用于訪問輸入有序列表的方法的流程圖;以及
[0015]圖7示出了用于處理元素以形成有序列表的更一般化的方法的流程圖。
[0016]詳細(xì)描述
[0017]根據(jù)本文描述的實(shí)施例,描述了合并有序列表的制定。該制定使用多個(gè)輸入有序列表并且使用數(shù)組對(duì)來分多個(gè)階段進(jìn)行。最初,用輸入有序列表來連續(xù)填充第一數(shù)組。在第一階段中,將第一和第二輸入有序列表合并成第二數(shù)組中的第一中間合并列表。每一后續(xù)階段合并從先前階段產(chǎn)生的先前中間合并列表和第一數(shù)組中的下一輸入有序列表,以生成下一中間合并列表或者合并有序列表(如果第一數(shù)組中不再有輸入)。中間合并列表從一個(gè)階段到下一階段在第一數(shù)組和第二數(shù)組之間交替。
[0018]將參考圖1來描述對(duì)計(jì)算系統(tǒng)的一些介紹性討論。然后,將參考圖2至7來描述有序列表合并的原理。
[0019]計(jì)算系統(tǒng)現(xiàn)在越來越多地采取多種多樣的形式。例如,計(jì)算系統(tǒng)可以是手持式設(shè)備、電器、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng)或甚至常規(guī)上不被認(rèn)為是計(jì)算系統(tǒng)的設(shè)備。在本說明書以及權(quán)利要求書中,術(shù)語“計(jì)算系統(tǒng)”被廣義地定義為包括任何設(shè)備或系統(tǒng)(或其組合),該設(shè)備或系統(tǒng)包含至少一個(gè)物理有形的處理器以及其上能具有可由處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的物理有形的存儲(chǔ)器。存儲(chǔ)器可以采取任何形式,并可以取決于計(jì)算系統(tǒng)的性質(zhì)和形式。計(jì)算系統(tǒng)可以分布在網(wǎng)絡(luò)環(huán)境中,并可包括多個(gè)組分計(jì)算系統(tǒng)。
[0020]如圖1所示,在其最基本的配置中,計(jì)算系統(tǒng)100包括至少一個(gè)處理單元102和計(jì)算機(jī)可讀介質(zhì)104。計(jì)算機(jī)可讀介質(zhì)104在概念上可被認(rèn)為包括物理系統(tǒng)存儲(chǔ)器,其可以是易失性的、非易失性的或這兩者的某種組合。計(jì)算機(jī)可讀介質(zhì)104在概念上還包括非易失性大容量存儲(chǔ)。如果計(jì)算系統(tǒng)是分布式的,則處理、存儲(chǔ)器和/或存儲(chǔ)能力也可以是分布式的。
[0021]如本文中所使用的,術(shù)語“可執(zhí)行模塊”或“可執(zhí)行組件”可以指可以在計(jì)算系統(tǒng)上執(zhí)行的軟件對(duì)象、例程或方法。此處所描述的不同組件、模塊、引擎以及服務(wù)可以實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或進(jìn)程(例如,作為分開的線程)。在其中實(shí)施類型安全性并且其中各進(jìn)程被分配了它們自己的不同存儲(chǔ)器對(duì)象的受管環(huán)境中執(zhí)行的情況下,這樣的可執(zhí)行模塊可以是受管代碼。在可執(zhí)行模塊用本機(jī)代碼(如C或C++)編寫的情況下,這樣的可執(zhí)行模塊還可以是非受管代碼。
[0022]在隨后的描述中,參考由一個(gè)或多個(gè)計(jì)算系統(tǒng)執(zhí)行的動(dòng)作描述了各實(shí)施例。如果這樣的動(dòng)作是以軟件實(shí)現(xiàn)的,則執(zhí)行動(dòng)作的相關(guān)聯(lián)計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器響應(yīng)于已經(jīng)執(zhí)行了計(jì)算機(jī)可執(zhí)行指令來引導(dǎo)計(jì)算系統(tǒng)的操作。例如,這樣的計(jì)算機(jī)可執(zhí)行指令可以在形成計(jì)算機(jī)程序產(chǎn)品的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)。這樣的操作的示例涉及對(duì)數(shù)據(jù)的操縱。計(jì)算機(jī)可執(zhí)行指令(以及被操縱的數(shù)據(jù))可以存儲(chǔ)在計(jì)算系統(tǒng)100的存儲(chǔ)器104中。計(jì)算系統(tǒng)100還可包含允許計(jì)算系統(tǒng)100例如通過網(wǎng)絡(luò)110與其他處理器通信的通信信道108。
[0023]本文中描述的各實(shí)施例可包括或利用專用或通用計(jì)算機(jī),該專用或通用計(jì)算機(jī)包括諸如例如一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器等計(jì)算機(jī)硬件,如以下更詳細(xì)討論的本文中描述的各實(shí)施例還包括用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲(chǔ)介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種顯著不同的計(jì)算機(jī)可讀介質(zhì):計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。
[0024]計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問的任何其他有形存儲(chǔ)介質(zhì)。
[0025]“網(wǎng)絡(luò)”被定義為使得電子數(shù)據(jù)能夠在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其它電子設(shè)備之間傳輸?shù)囊粋€(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一個(gè)通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括可以用來攜帶所需要的以計(jì)算機(jī)可執(zhí)行的指令或數(shù)據(jù)結(jié)構(gòu)的形式存在的程序代碼裝置并可以被通用或?qū)S糜?jì)算機(jī)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合應(yīng)當(dāng)也被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0026]此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼資料可從傳輸介質(zhì)自動(dòng)傳輸?shù)接?jì)算機(jī)存儲(chǔ)介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口控制器(例如,“NIC”)內(nèi)的RAM中,然后最終被傳輸?shù)接?jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。因而,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。
[0027]計(jì)算機(jī)可執(zhí)行指令例如包括,當(dāng)在處理器處執(zhí)行時(shí)使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動(dòng)作。相反,上述特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。
[0028]本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備二者中。
[0029]圖2示出根據(jù)本文描述的原理的用于制定合并有序列表的方法200的流程圖。方法200以及本文描述的任何其他方法可由諸如圖1的計(jì)算系統(tǒng)100等計(jì)算系統(tǒng)來執(zhí)行。具體而言,如果用軟件實(shí)現(xiàn),則處理器102執(zhí)行存在于構(gòu)成計(jì)算機(jī)程序產(chǎn)品的全部或部分的計(jì)算機(jī)可讀介質(zhì)(諸如計(jì)算機(jī)可讀存儲(chǔ)介質(zhì))上的計(jì)算機(jī)可執(zhí)行指令。
[0030]對(duì)于輸入,方法200使用各自根據(jù)排序優(yōu)先級(jí)來排序的多個(gè)輸入有序列表(動(dòng)作201)。在此將使用特定示例來幫助理解本文描述的原理。在該特定示例中,存在三個(gè)輸入有序列表,每一輸入有序列表包括從最低到最高排序的整數(shù)元素。三個(gè)有序列表如下:
[0031]有序列表A:1,2,3,4,9
[0032]有序列表B:5,8
[0033]有序列表C:2,4,7
[0034]對(duì)于該示例,正確合并的有序列表將如下:
[0035]合并有序列表:1,2,2,3,4,4,5,7,8,9
[0036]在描述根據(jù)本文描述的原理的合并操作之前,首先將描述用于根據(jù)現(xiàn)有技術(shù)優(yōu)先級(jí)隊(duì)列方法來合并有序列表的機(jī)制。描述該第一機(jī)制的原因的一部分將是使得讀者能清楚地看到與現(xiàn)有技術(shù)合并機(jī)制相比根據(jù)本文描述的原理的合并過程要復(fù)雜多少。有悖常理地,根據(jù)本文描述的原理的更復(fù)雜的合并過程與常規(guī)優(yōu)先級(jí)隊(duì)列方法相比實(shí)際上能由現(xiàn)代處理器更高效地執(zhí)行。
[0037]在優(yōu)先級(jí)隊(duì)列方法的第一階段中,其所具有元素的數(shù)量與所存在的輸入有序列表的數(shù)量相同的優(yōu)先級(jí)隊(duì)列被首先建立并且用來自每一輸入有序列表的首元素來填充。當(dāng)來自輸入有序列表的元素被填充到優(yōu)先級(jí)隊(duì)列中時(shí),該元素從輸入有序列表中移除。由此,在第一排序階段開始時(shí),操作狀態(tài)如下:
[0038]有序列表A:2,3,4,9
[0039]有序列表B:8
[0040]有序列表C:4,7
[0041]優(yōu)先級(jí)隊(duì)列:1,5,2
[0042]由此,優(yōu)先級(jí)隊(duì)列中的第一元素用來自輸入有序列表A的元素來填充,優(yōu)先級(jí)隊(duì)列中的第二元素用來自輸入有序列表B的元素來填充,而優(yōu)先級(jí)隊(duì)列中的最后元素用來自輸入有序列表C的元素來填充。
[0043]在每一排序階段中,最高優(yōu)先級(jí)元素被從優(yōu)先級(jí)隊(duì)列中移除并被放置
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
湖州市| 喜德县| 河北省| 凌云县| 嘉祥县| 济宁市| 修武县| 长乐市| 五指山市| 尼玛县| 太康县| 新建县| 错那县| 弥渡县| 韶关市| 平罗县| 永仁县| 西昌市| 镇江市| 安仁县| 镇安县| 察哈| 瓮安县| 怀仁县| 麦盖提县| 邢台县| 习水县| 社旗县| 宁安市| 资溪县| 昌黎县| 新建县| 巴林右旗| 青海省| 深泽县| 崇州市| 清新县| 铁岭市| 呼伦贝尔市| 长武县| 宿松县|