版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)第10章內(nèi)部排序信息工程學(xué)院衷璐潔概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容一、排序的定義
假設(shè)含n個(gè)記錄的序列為{R1,R2,…,Rn}其相應(yīng)的關(guān)鍵字序列為{K1,K2,…,Kn}需確定1,2,…,n的一種排列p1,p2,…,pn,使其相應(yīng)的關(guān)鍵字滿足如下的非遞減(或非遞增)關(guān)系:
Kp1
≤
Kp2≤
…≤
Kpn即使序列{R1,R2,…,Rn}成為一個(gè)按關(guān)鍵字有序的序列{Rp1,Rp2,…,Rpn}這樣一種操作稱為排序
關(guān)鍵字Ki可以是記錄Ri的主關(guān)鍵字【排序結(jié)果唯一】、次關(guān)鍵字或若干數(shù)據(jù)項(xiàng)的組合【排序結(jié)果不唯一】假設(shè):(1)在待排序序列中存在兩個(gè)(以上)關(guān)鍵字相等的記錄Ri和Rj,即:Ki=Kj
(1≤i,j≤n,i≠j)
(2)在排序前的序列中Ri領(lǐng)先于Rj
(即:i<j)那么:若排序后Ri仍領(lǐng)先于Rj
,則稱所用的排序方法是穩(wěn)定的;否則,稱所用的排序方法是不穩(wěn)定的
【對(duì)不穩(wěn)定的排序方法,只需舉出一組關(guān)鍵字實(shí)例說(shuō)明其不穩(wěn)定性即可】二、排序方法的穩(wěn)定性
按排序過(guò)程中涉及存儲(chǔ)器的不同,可將排序方法分為兩大類(lèi):內(nèi)部排序:待排序記錄存放在計(jì)算機(jī)隨機(jī)存儲(chǔ)器(內(nèi)存)中進(jìn)行的排序過(guò)程外部排序:待排序記錄的數(shù)量很大,內(nèi)存一次不能容納全部記錄,還需外存輔助的排序過(guò)程三、排序的分類(lèi)按排序過(guò)程中依據(jù)的不同原則大致可分為:按內(nèi)部排序過(guò)程所需的工作量分:插入排序交換排序選擇排序歸并排序基數(shù)排序(1)簡(jiǎn)單的排序方法——O(n2)(2)先進(jìn)的排序方法——O(nlog2n)(3)基數(shù)排序——O(d·n)四、內(nèi)部排序方法(1)比較:比較兩個(gè)關(guān)鍵字的大小大多數(shù)排序都需要(2)移動(dòng):將記錄從一個(gè)位置移到另一個(gè)位置可通過(guò)改變記錄的存儲(chǔ)方式避免五、大多數(shù)排序的兩種基本操作排序時(shí)必須移動(dòng)記錄(2)靜態(tài)鏈表存儲(chǔ)——(鏈)表排序排序時(shí)不移動(dòng)記錄,僅需修改指針(3)順序存儲(chǔ)+地址向量=地址排序排序時(shí)不移動(dòng)記錄,而是移動(dòng)地址向量中的“地址”排序結(jié)束后再按地址向量中的值調(diào)整記錄的存儲(chǔ)位置六、排序記錄的存儲(chǔ)方式(1)順序存儲(chǔ)待排記錄的數(shù)據(jù)類(lèi)型:#defineMAXSIZE20//順序表的最大長(zhǎng)度typedefintKeyType;//關(guān)鍵字類(lèi)型typedefstruct{
KeyType
key;//關(guān)鍵字InfoTypeotherinfo;//其它數(shù)據(jù)項(xiàng)}RedType;//記錄類(lèi)型typedefstruct{
RedType
r[MAXSIZE+1];//r[0]閑置或用作哨兵單元intlength;//順序表長(zhǎng)度}SqList;//順序表類(lèi)型概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容一、直接插入排序方法:將一個(gè)記錄插入到已排好序的有序表中,得到一個(gè)新的、記錄數(shù)增1的有序表:(1)把序列(R(K1))看成是一個(gè)有序的子序列把R(K2)插入到該序列中,使插入后序列(R(K1),R(K2))有序(2)把R(K3)插入到(R(K1),R(K2))中,使插入后有序(3)重復(fù)(2),直到插入R(Kn)為止。10.2插入排序49,38,65,97,76,13,2749384938496538496597384965769713384965769713273849657697//對(duì)順序表L作直接插入排序的算法voidInsertSort(SqList&L){//算法10.1for(i=2;i<=L.length;++i)
//"<"時(shí),需將L.r[i]插入有序子表
if(LT(L.r[i].key,L.r[i-1].key)){
L.r[0]=L.r[i];//復(fù)制為哨兵
for(j=i-1;LT(L.r[0].key,L.r[j].key);--j)L.r[j+1]=L.r[j];
//記錄后移
L.r[j+1]=L.r[0];
//插入到正確位置}}//InsertSort[576489]6某趟插入排序:復(fù)制為哨兵j89j64j7j6i直接插入排序的時(shí)間復(fù)雜度:O(n2)二、其它插入排序直接插入排序適合待排序數(shù)量n很小的情況,若n很大,則不宜采用為此,從減少“比較”和“移動(dòng)”這兩種操作的次數(shù)考慮,可有以下幾種排序的方法:(1)折半插入排序(2)2-路插入排序(3)表插入排序(4)希爾排序(1)折半插入排序做法:用折半查找的方法找到插入位置
例:在序列{13,27,35,48,65,72}中插入20或603565132748722060//對(duì)順序表L作折半插入排序voidBInsertSort(SqList&L){//算法10.2for(i=2;i<=L.length;++i){
L.r[0]=L.r[i];//將L.r[i]暫存到L.r[0]low=1;high=i-1;while(low<=high){//在r[low..high]中折半查找有序插入的位置
m=(low+high)/2;//折半
if(LT(L.r[0].key,L.r[m].key))high=m-1;//插入點(diǎn)在低半?yún)^(qū)
elselow=m+1;
//插入點(diǎn)在高半?yún)^(qū)}
for(j=i-1;j>=high+1;--j)L.r[j+1]=L.r[j];
//記錄后移
L.r[high+1]=L.r[0];
//插入}}//BInsertSort[576489]246將L.r[i]暫存于L.r[0]89647low6mhigh折半插入排序的時(shí)間復(fù)雜度:O(n2)low(2)希爾排序又稱“縮小增量排序”(DiminishingIncrementSort)希爾排序的基本思想:(1)先將整個(gè)待排記錄序列分割成若干子序列(2)分別對(duì)這些子序列進(jìn)行直接插入排序(3)待整個(gè)序列中的記錄“基本有序”時(shí),再對(duì)全體記錄進(jìn)行一次直接插入排序增量序列為:5,3,149
38
65
977613
27
4913
27
49
977649
386513
27
49
97
76
49
386513
27
49
38
65
49
97761327384949657697/*對(duì)順序表L作一趟希爾插入排序。本算法對(duì)算法10.1作了以下修改:1.前后記錄位置的增量是dk,而不是1;2.r[0]只是暫存單元,不是哨兵。當(dāng)j<=0時(shí),插入位置已找到*/voidShellInsert(SqList&L,intdk){//算法10.4for(i=dk+1;i<=L.length;++i)
//需將L.r[i]插入有序增量子表if(LT(L.r[i].key,L.r[i-dk].key)){
L.r[0]=L.r[i];//暫存在L.r[0]for(j=i-dk;j>0&<(L.r[0].key,L.r[j].key);j-=dk)L.r[j+dk]=L.r[j];//記錄后移,查找插入位置
L.r[j+dk]=L.r[0];//插入}}//ShellInsert/*按增量序列dlta[0..t-1]對(duì)順序表L作希爾排序*/voidShellSort(SqList&L,intdlta[],intt){//算法10.5
for(k=0;k<t;++k)ShellInsert(L,dlta[k]);//一趟增量為dlta[k]的插入排序}//ShellSort希爾排序的時(shí)間是所取“增量”序列的函數(shù),涉及一些數(shù)學(xué)上的尚未解決的難題概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容快速排序是一種借助“交換”進(jìn)行排序的方法10.3快速排序一、起泡排序(BubbleSort)一趟排序voidBubbleSort(SqList&L){for(i=1;i<n;i++){change=FALSE;for(j=1;j<n-i+1;j++)if(L.r[j].key>L.r[j+1].key){change=TRUE;L.r[j]L.r[j+1];}
if(!change)return;}}共進(jìn)行n-1趟排序,共進(jìn)行n(n-1)/2次比較T(n)=O(n2)快速排序是對(duì)起泡排序的一種改進(jìn)基本思想:通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小則再分別對(duì)這兩部分的記錄繼續(xù)進(jìn)行排序最后達(dá)到整個(gè)序列有序二、快速排序(QuickSort)假設(shè)待排序序列為{L.r[s],L.r[s+1],…,L.r[t]}首先任意選取一個(gè)記錄(一般為第一個(gè)記錄L.r[s])作為樞軸(或支點(diǎn))(pivot)然后按下述原則重新排列其余記錄:將所有關(guān)鍵字比它小的記錄都安置在樞軸之前將所有關(guān)鍵字比它大的記錄都安置在樞軸之后由此,以該“樞軸”記錄最后所落的位置i作分界線,將序列{L.r[s],L.r[s+1],…,L.r[t]}分割成兩個(gè)子序列:{L.r[s],L.r[s+1],…,L.r[i-1]}和{L.r[i+1],L.r[i+2],…,L.r[t]}這個(gè)過(guò)程稱作一趟快速排序(或一次劃分)4938659776132749i27386597761349
492738499776136549jiiijjijj2738139776496549iji2738134976976549ij27381376976549jj具體實(shí)現(xiàn):
low=s;high=t;pivotkey=L.r[low].key;(1)從high開(kāi)始往前找第一個(gè)關(guān)鍵字小于pivotkey的記錄,與樞軸記錄交換
(2)從low開(kāi)始往后找第一個(gè)關(guān)鍵字大于pivotkey的記錄,與樞軸記錄交換
(3)重復(fù)(1)(2)直到low==high為止此時(shí)樞軸記錄所在的位置i=low=high273813497697654913
27
384965
76
97/*算法10.6(a)交換順序表L中子表L.r[low..high]的記錄,使樞軸記錄到位,并返回其所在位置,此時(shí)在它之前(后)的記錄均不大(小)于它*/每交換一對(duì)記錄需進(jìn)行3次記錄移動(dòng)(賦值)操作!但對(duì)樞軸記錄的賦值是多余的!只有在一趟排序結(jié)束low=high的位置才是樞軸的最后位置,改寫(xiě)該算法!intPartition(SqList&L,intlow,inthigh){pivotkey=L.r[low].key;//用子表的第一個(gè)記錄作樞軸記錄
while(low<high){//從表的兩端交替地向中間掃描
while(low<high&&L.r[high].key>=pivotkey)--high;L.r[low]←→L.r[high];
//將比樞軸記錄小的記錄交換到低端while(low<high&&L.r[low].key<=pivotkey)++low;L.r[low]←→L.r[high];//將比樞軸記錄大的記錄交換到高端}returnlow;//返回樞軸位置}//Partition//改進(jìn)后的算法10.6(b)intPartition(SqList&L,intlow,inthigh){L.r[0]=L.r[low];//用子表的第一個(gè)記錄作樞軸記錄pivotkey=L.r[low].key;//樞軸記錄關(guān)鍵字
while(low<high){//從表的兩端交替地向中間掃描
while(low<high&&L.r[high].key>=pivotkey)--high;L.r[low]=L.r[high];//將比樞軸記錄小的記錄移到低端
while(low<high&&L.r[low].key<=pivotkey)++low;L.r[high]=L.r[low];
//將比樞軸記錄大的記錄移到高端
}L.r[low]=L.r[0];//樞軸記錄到位returnlow;//返回樞軸位置}//Partition//對(duì)順序表L作快速排序//遞歸形式的快速排序算法//對(duì)順序表L的子序列L.r[low..high]作快速排序voidQSort(SqList&L,intlow,inthigh){if(low<high){
//長(zhǎng)度大于1
//將L.r[low..high]一分為二
pivotloc=Partition(L,low,high);//pivotloc是樞軸位置
QSort(L,low,pivotloc-1);//對(duì)低子表遞歸排序
QSort(L,pivotloc+1,high);//對(duì)高子表遞歸排序
}}//QSortvoidQuickSort(SqList&L){
QSort(L,1,L.length);}//QuickSortT(n)=O(nlog2n)快速排序的平均時(shí)間為T(mén)avg=knlnn其中:n為待排序序列中記錄的個(gè)數(shù),k為某個(gè)常數(shù)就平均時(shí)間而言,快速排序是目前被認(rèn)為是最好的一種內(nèi)部排序方法但是:若初始記錄序列按關(guān)鍵字有序或基本有序時(shí),快速排序蛻化為起泡排序,其時(shí)間復(fù)雜度為O(n2)從空間上看:之前討論的各種方法,除2-路插入排序外,都只需要一個(gè)記錄的附加空間,但快速排序需要一個(gè)??臻g來(lái)實(shí)現(xiàn)遞歸。概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容10.4選擇排序251608254921490816252521212525160849162108一、簡(jiǎn)單選擇排序(SelectSort)2516082549214925012345081625212549252116082525//對(duì)順序表L作簡(jiǎn)單選擇排序voidSelectSort(SqList&L){for(i=1;i<L.length;++i){//選擇第i小的記錄,并交換到位j=SelectMinKey(L,i);//在L.r[i..L.length]中選擇key最小的記錄if(i!=j)L.r[i]←→L.r[j];//與第i個(gè)記錄交換}}//SelectSortintSelectMinKey(SqListL,intk){//在L.r[k..L.length]中選擇key最小的記錄并返回它的位置
min=L.r[k].key;minp=k;for(i=k+1;i<=L.length;i++)if(L.r[i].key<min){min=L.r[i].key;minp=i;}returnminp;}共進(jìn)行n-1趟排序,n(n-1)/2次比較時(shí)間復(fù)雜度O(n2)TreeSelectionSort,又稱錦標(biāo)賽排序(TournamentSort)該過(guò)程可用一棵有n個(gè)葉子結(jié)點(diǎn)的完全二叉樹(shù)表示
將葉子結(jié)點(diǎn)中最小關(guān)鍵字改為MAXINT,然后該葉子與其左/右兄弟關(guān)鍵字比較依次修改從葉子到根的路徑上各結(jié)點(diǎn)的關(guān)鍵字值則根結(jié)點(diǎn)為次小記錄不斷重復(fù),直到葉子結(jié)點(diǎn)均為MAXINT為止。是一種按錦標(biāo)賽的思想進(jìn)行排序的方法首先對(duì)n個(gè)記錄的關(guān)鍵字進(jìn)行兩兩比較然后在其中個(gè)較小者之間再進(jìn)行兩兩比較如此重復(fù),直至選出最小關(guān)鍵字的記錄為止二、樹(shù)形選擇排序082108086325212125492516086395a[0]a[1]1621161663252121254925166395a[2]212163632521212549256395a[3]2525636325252549256395a[4]252563632549256395a[5]4949636349496395a[6]6363636395a[7]95959595堆定義如下:
n個(gè)元素的序列{k1,k2,…,kn}當(dāng)且僅當(dāng)滿足如下關(guān)系時(shí),稱之為堆ki≤k2i(或ki≥k2i)ki≤k2i+1(或ki≥k2i+1)
i=1,2,…,三、堆排序(HeapSort)
若用一個(gè)一維數(shù)組存放滿足此關(guān)系的序列,把這個(gè)一維數(shù)組看成是一棵完全二叉樹(shù),則堆對(duì)應(yīng)的完全二叉樹(shù)中所有非終端結(jié)點(diǎn)的值均大于或均小于其左右孩子的值。小頂堆大頂堆大頂堆/大根堆堆排序(從小到大)方法:(1)由一個(gè)無(wú)序的序列建成一個(gè)堆(2)輸出堆頂?shù)淖钚≈担?)剩余的元素建成一個(gè)新的堆(4)重復(fù)(2)(3)093811962783小頂堆/小根堆30854712243691534938659776132749輸出13后,用序列中最后一個(gè)記錄代替根結(jié)點(diǎn)篩選為小頂堆堆頂元素與它的左右子樹(shù)根結(jié)點(diǎn)比較:(1)若右子樹(shù)根<左子樹(shù)根<堆頂根結(jié)點(diǎn)與右子樹(shù)根交換(2)若左子樹(shù)根<右子樹(shù)根<堆頂根結(jié)點(diǎn)與左子樹(shù)根交換這個(gè)調(diào)整過(guò)程稱為篩選1338497697276549973849762765492738497649659749386597761327497627496538974913496538977649659749273813對(duì)一個(gè)無(wú)序序列建立堆也是篩選過(guò)程,篩選從第個(gè)記錄開(kāi)始(1)初建堆首先將序列表示成完全二叉樹(shù)的形式從第個(gè)記錄開(kāi)始調(diào)整,假設(shè)要建大頂堆4997657649273813初建堆(大頂堆)完成499765764927381349386576492797134976654938279713(2)堆排序重新調(diào)整成堆第1趟堆排序完成將堆頂與序列中未排序的最后一個(gè)元素互換497665493827971349276549387697134965274938769713第2趟堆排序完成將堆頂與序列中未排序的最后一個(gè)元素互換重新調(diào)整成堆496527493876971349132749387697651349274938769765第3趟堆排序完成將堆頂與序列中未排序的最后一個(gè)元素互換重新調(diào)整成堆134927493876976549132749387697654949273813769765第4趟堆排序完成重新調(diào)整成堆將堆頂與序列中未排序的最后一個(gè)元素互換494927381376976549132738497697654938271349769765第5趟堆排序完成重新調(diào)整成堆將堆頂與序列中未排序的最后一個(gè)元素互換493827134976976549273813497697654913382749769765建大頂堆,排序結(jié)果為從小到大將堆頂與序列中未排序的最后一個(gè)元素互換無(wú)調(diào)整,第6趟堆排序完成無(wú)調(diào)整,第7趟堆排序完成/*已知H.r[s..m]中記錄的關(guān)鍵字除H.r[s].key之外均滿足堆的定義,本函數(shù)調(diào)整H.r[s]的關(guān)鍵字,使H.r[s..m]成為一個(gè)大頂堆(對(duì)其中記錄的關(guān)鍵字而言)*/typedefSqListHeapType;voidHeapAdjust(HeapType&H,ints,intm){rc=H.r[s];
for(j=2*s;j<=m;j*=2){//沿key較大的孩子結(jié)點(diǎn)向下篩選//j為key較大的記錄的下標(biāo)if(j<m&<(H.r[j].key,H.r[j+1].key))++j;if(!LT(rc.key,H.r[j].key))break;//rc應(yīng)插入在位置s上H.r[s]=H.r[j];s=j;}H.r[s]=rc;//插入}//HeapAdjust從下標(biāo)s處開(kāi)始調(diào)整左側(cè)“底座”j記住的是兩個(gè)“底座”中值較大的那一個(gè)的下標(biāo)如果rc大于H.r[j].key,那么無(wú)需調(diào)整(大頂堆),直接退出循環(huán)把H.r[j]放到H.r[s]中;s下移到j(luò)處,準(zhǔn)備下一次可能的調(diào)整最終rc所放的位置/*對(duì)順序表H進(jìn)行堆排序*/voidHeapSort(HeapType&H){
for(i=H.length/2;i>0;--i)
//把H.r[1..H.length]建成大頂堆
HeapAdjust(H,i,H.length);
//將堆頂記錄和當(dāng)前未經(jīng)排序子序列Hr[1..i]中最后一個(gè)記錄相互交換for(i=H.length;i>1;--i)
{
H.r[1]←→H.r[i];
HeapAdjust(H,1,i-1);//將H.r[1..i-1]重新調(diào)整為大頂堆}}//HeapSort時(shí)間復(fù)雜度O(nlog2n)概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容10.5歸并排序(MergingSort)將兩個(gè)或兩個(gè)以上的有序表組合成一個(gè)新的有序表2路歸并:把初始含有n個(gè)記錄的序列看成n個(gè)長(zhǎng)度為1的有序子序列,采用兩兩合并的方法最終合并成一個(gè)序列21252593627208371654492521254962930872163754082125
254962729316375408162125
253749546272932125
254908627293163754//算法10.12將有序的SR[i..m]和SR[m+1..n]歸并為有序的TR[i..n]voidMerge(RcdTypeSR[],RcdType&TR[],inti,intm,intn){//將SR中記錄由小到大地并入TRfor(j=m+1,k=i;i<=m&&j<=n;++k){if(LQ(SR[i].key,SR[j].key))TR[k]=SR[i++];elseTR[k]=SR[j++];}if(i<=m)TR[k..n]=SR[i..m];//將剩余的SR[i..m]復(fù)制到TRif(j<=n)TR[k..n]=SR[j..n];//將剩余的SR[j..n]復(fù)制到TR}//Merge時(shí)間復(fù)雜度:O(nlog2n)//遞歸算法:將SR[s..t]歸并排序?yàn)門(mén)R1[s..t]voidMSort(RcdTypeSR[],RcdType&TR1[],ints,intt){
if(s==t)TR1[s]=SR[s];else{m=(s+t)/2;//將SR[s..t]平分為SR[s..m]和SR[m+1,t]
MSort(SR,TR2,s,m);//遞歸地將SR[s..m]歸并為有序的TR2[s..m]
MSort(SR,TR2,m+1,t);//遞歸地將SR[m+1..t]歸并為有序的TR2[m+1..t]
Merge(TR2,TR1,s,m,t);//將TR2[s..m]和TR2[m+1..t]歸并到TR1[s..t]}}//MSort//對(duì)順序表L作歸并排序voidMergeSort(SqList&L){
MSort(L.r,L.r,1,L.length);}//MergeSort概述插入排序快速排序選擇排序歸并排序基數(shù)排序各種內(nèi)部排序方法的比較討論本講主要內(nèi)容與前述方法完全不同的一種排序方法!前面的排序方法主要通過(guò)關(guān)鍵字間的比較和移動(dòng)記錄來(lái)實(shí)現(xiàn)的!基數(shù)排序不需要進(jìn)行關(guān)鍵字間的比較,它是一種借助多關(guān)鍵字的排序思想對(duì)單邏輯關(guān)鍵字進(jìn)行排序的方法10.6基數(shù)排序(RadixSorting)最高位優(yōu)先法MSD:先按關(guān)鍵字K0排序,將序列分成若干個(gè)子序列每個(gè)子序列記錄的K0均相等然后在每個(gè)子序列中按K1排序按K1值把子序列分成更小的子序列
……………
直到最后按Kd-1排序后,整個(gè)序列有序一、多關(guān)鍵字排序(1,1),(2,4),(1,3),(3,2),(4,4),(2,3),(4,3),(3,4)(1,1),(1,3),(2,4),(2,3),(3,2),(3,4),(4,4),(4,3)(1,1),(3,2),(1,3),(2,3),(4,3),(2,4),(3,4),(4,4)最低位優(yōu)先法LSD:根據(jù)最次關(guān)鍵字Kd-1起對(duì)記錄排序再根據(jù)Kd-2對(duì)記錄排序。。。。。。根據(jù)K0對(duì)記錄排序后,
整個(gè)序列有序(1,1),(2,4),(1,3),(3,2),(4,4),(2,3),(4,3),(3,4)(1,1),(3,2),(1,3),(2,3),(4,3),(2,4),(4,4),(3,4)(1,1),(1,3),(2,3),(2,4),(3,2),(3,4),(4,3),(4,4)二、鏈?zhǔn)交鶖?shù)排序用分配和收集兩種操作對(duì)單關(guān)鍵字進(jìn)行排序某些單關(guān)鍵字可以看成是若干個(gè)關(guān)鍵字復(fù)合而成,如多位數(shù)可以看成是由多個(gè)數(shù)字復(fù)合而成的?!胺峙洹保?/p>
按關(guān)鍵字把不同的記錄送到不同的隊(duì)列中“收集”:
按某種順序把不同隊(duì)列中的記錄集中起來(lái)614921485637738101
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年二零二四年度投資機(jī)構(gòu)品牌管理與推廣合同3篇
- 2024版?zhèn)€人房屋貸款第三方擔(dān)保合同范本3篇
- 2024版工業(yè)園區(qū)保潔勞務(wù)分包合同書(shū)范本2篇
- 2024年商務(wù)物業(yè)租賃合同2篇
- 2024年度餐飲行業(yè)勞務(wù)派遣服務(wù)及員工激勵(lì)方案合同3篇
- 2024年版標(biāo)準(zhǔn)化人力外包合作合同一
- 2024年度環(huán)境污染治理技術(shù)研發(fā)與轉(zhuǎn)讓合同3篇
- 2024年度房地產(chǎn)銷(xiāo)售代理合同標(biāo)的:房產(chǎn)交易3篇
- 2024年二手房買(mǎi)賣(mài)按揭合同范本2篇
- 2024年度廈門(mén)汽車(chē)銷(xiāo)售服務(wù)合同2篇
- 商業(yè)銀行同城票據(jù)清算應(yīng)急預(yù)案
- 電大建筑施工與管理專(zhuān)業(yè)畢業(yè)作業(yè)
- xxxxx年豬文化節(jié)
- 第二語(yǔ)言習(xí)得理論概述
- 水景施工工藝(包括防水)
- DAC數(shù)模轉(zhuǎn)換實(shí)驗(yàn)報(bào)告
- 散貨船持證清單
- 公路巡查記錄表格模板
- 師德師風(fēng)整改臺(tái)賬23668
- 河海大學(xué)水資源規(guī)劃及利用復(fù)習(xí)知識(shí)點(diǎn).
- 廣廈建筑結(jié)構(gòu)CAD基礎(chǔ)部分
評(píng)論
0/150
提交評(píng)論