數(shù)據(jù)結(jié)構(gòu)排序_第1頁
數(shù)據(jù)結(jié)構(gòu)排序_第2頁
數(shù)據(jù)結(jié)構(gòu)排序_第3頁
數(shù)據(jù)結(jié)構(gòu)排序_第4頁
數(shù)據(jù)結(jié)構(gòu)排序_第5頁
已閱讀5頁,還剩159頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第9章 排序 2 目目 錄錄 9.4 選擇排序391 基本概念基本概念 排序排序:是計算機程序設(shè)計中的一項重要操作,其功能是指是計算機程序設(shè)計中的一項重要操作,其功能是指一個數(shù)據(jù)元素集合或序列重新排列成一個按數(shù)據(jù)元素某個數(shù)據(jù)一個數(shù)據(jù)元素集合或序列重新排列成一個按數(shù)據(jù)元素某個數(shù)據(jù)項值有序的序列。項值有序的序列。 排序碼排序碼(關(guān)鍵碼關(guān)鍵碼):排序依據(jù)的數(shù)據(jù)項。排序依據(jù)的數(shù)據(jù)項。 穩(wěn)定排序穩(wěn)定排序:排序前與排序后相同關(guān)鍵碼元素間的位置關(guān)系,排序前與排序后相同關(guān)鍵碼元素間的位置關(guān)系,保持一致的排序方法。保持一致的排序方法。 不穩(wěn)定排序不穩(wěn)定排序:排序前與排序后相同關(guān)鍵碼元素間的相對位置排序前與排序

2、后相同關(guān)鍵碼元素間的相對位置發(fā)生改變的排序方法。發(fā)生改變的排序方法。 排序分為兩類:排序分為兩類: (1)內(nèi)排序內(nèi)排序:指待排序列完全存放在內(nèi)存中所進(jìn)行的排序。指待排序列完全存放在內(nèi)存中所進(jìn)行的排序。內(nèi)排序大致可分為五類:插入排序、交換排序、選擇排序、歸內(nèi)排序大致可分為五類:插入排序、交換排序、選擇排序、歸并排序和分配排序。本章主要討論內(nèi)排序。并排序和分配排序。本章主要討論內(nèi)排序。 (2)外排序:外排序:指排序過程中還需訪問外存儲器的排序。指排序過程中還需訪問外存儲器的排序。 為了以后討論方便,我們直接將排序碼寫成一個一維數(shù)組為了以后討論方便,我們直接將排序碼寫成一個一維數(shù)組的形式,并且在沒有

3、聲明的情形下,所有排序都按排序碼的值的形式,并且在沒有聲明的情形下,所有排序都按排序碼的值遞增排列。遞增排列。49.2 9.2 插入排序插入排序 基本思想:每次將一個待排序的元素,按其關(guān)基本思想:每次將一個待排序的元素,按其關(guān)鍵字的大小插入到前面已經(jīng)排好序的子文件的適鍵字的大小插入到前面已經(jīng)排好序的子文件的適當(dāng)位置,直到全部記錄插入完成為止。當(dāng)位置,直到全部記錄插入完成為止。 9.2.1 直接插入排序直接插入排序 直接插入排序的基本思想是:把直接插入排序的基本思想是:把n個待排序的元素個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包看成為一個有序表和一個無序表,開始時有序表中只包

4、含一個元素,無序表中包含有含一個元素,無序表中包含有n-1個元素,排序過程中個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進(jìn)行比較,將它插入到有序表中的有序表元素的排序碼進(jìn)行比較,將它插入到有序表中的適當(dāng)位置,使之成為新的有序表。適當(dāng)位置,使之成為新的有序表。5 例如,例如,n=6,數(shù)組,數(shù)組R的六個排序碼分別為:的六個排序碼分別為:17,3,25,14,20,9。它的直接插入排序的執(zhí)行過程如下:。它的直接插入排序的執(zhí)行過程如下: 1 2 3 4 5 6 初始狀態(tài) (17 ) 3 25 14 20 9 第一次

5、插入 (3 17 ) 25 14 20 9 第二次插入 (3 17 25 ) 14 20 9 第三次插入 (3 14 17 25 ) 20 9 第四次插入 (3 14 17 20 25 ) 9 第五次插入 (3 9 14 17 20 25) 直接插入排序舉例直接插入排序舉例6void D-InsertSort(datatype R ,int n)/*待排序的待排序的n個元素放在數(shù)組個元素放在數(shù)組R中,用直接插入法進(jìn)行排序中,用直接插入法進(jìn)行排序*/ for ( i=2; i=n; i+) /*i控制第控制第i-1次插入次插入,最多進(jìn)行最多進(jìn)行n-1次插入次插入*/ if (Ri.keyRi-1

6、.key) /*小于時小于時,需將需將Ri插入有序表插入有序表*/ R0=Ri; /*為統(tǒng)一算法設(shè)置監(jiān)視哨為統(tǒng)一算法設(shè)置監(jiān)視哨*/ for ( j=i-1; R0.keyRj.key;j-) Rj+1=Rj; / /* *元素后移元素后移* */ / Rj+1= R0; / /* *將放在將放在R0R0中的第中的第i i個元素插入到有序表中個元素插入到有序表中* */ / 直接插入排序算法直接插入排序算法7直接插入排序的效率分析直接插入排序的效率分析 首先從空間來看,它只需要一個元素的輔助空首先從空間來看,它只需要一個元素的輔助空間,用于元素的位置交換。從時間分析,首先外層間,用于元素的位置交

7、換。從時間分析,首先外層循環(huán)要進(jìn)行循環(huán)要進(jìn)行n-1次插入次插入, 每次插入最少比較一次每次插入最少比較一次(正序正序), 移動移動0次次;最多比較最多比較i次次(包括同監(jiān)視哨包括同監(jiān)視哨R0的比較的比較),移移動動i1次次(逆序逆序)(i=2,3,n)。因此,。因此,直接插入排序的直接插入排序的時間復(fù)雜度為時間復(fù)雜度為O(n2)。 直接插入算法的元素移動是順序的,直接插入算法的元素移動是順序的,該方法是該方法是穩(wěn)定的穩(wěn)定的。89.2.2 9.2.2 希爾排序希爾排序( (縮小增量排序縮小增量排序) ) 希爾排序的基本思想希爾排序的基本思想:先將整個待排元先將整個待排元素序列分割成若干個子序列(

8、由相隔某個素序列分割成若干個子序列(由相隔某個“增增量量”的元素組成的)分別進(jìn)行直接插入排序,的元素組成的)分別進(jìn)行直接插入排序,待整個序列中的元素基本有序(增量足夠?。┐麄€序列中的元素基本有序(增量足夠小)時,再對全體元素進(jìn)行一次直接插入排序。因時,再對全體元素進(jìn)行一次直接插入排序。因為直接插入排序在元素基本有序的情況下(接為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的,因此希爾排序近最好情況),效率是很高的,因此希爾排序在時間效率上有較大提高。在時間效率上有較大提高。9 八個元素的關(guān)鍵碼分別為:八個元素的關(guān)鍵碼分別為:91,67,35,62,29,72,46,57,希

9、爾排序算法的執(zhí)行過程為:,希爾排序算法的執(zhí)行過程為: 91 67 35 62 29 72 46 57 初 始 狀 態(tài) , d1=4 29 57 35 62 46 67 91 72 第 二 趟 結(jié) 果 , d3=1 29 35 46 57 62 67 72 91 第 三 趟 結(jié) 果 29 67 35 57 91 72 46 62 第 一 趟 結(jié) 果 ,d2=2 希爾排序過程舉例希爾排序過程舉例10希爾排序算法void ShellSort(datatype R,int d,int t) /* 按增量序列按增量序列d0、 d1、 d2、 dt-1對順序表對順序表R1、 R2、 、 Rn作希爾排序作希

10、爾排序 , 注意注意d0、 d1、 d2、 dt-1 除除1之外不能有公因子,且之外不能有公因子,且dt-1必須為必須為1 */ for(k=0;kt;k+) ShellInsert(R,dk); void ShellInsert(datatype R,int dk)/* 對順序表對順序表R1、 R2、 、 Rn進(jìn)行一趟插入排序,進(jìn)行一趟插入排序,dk為增量為增量 、步長、步長 */ for(i=dk+1;i=n;i+) if( Ri.key0)&(R0.keyRj.key);j=j-dk) Rj+dk=Rj; /* 記錄后移記錄后移 */ Rj+dk=R0; /* 插入到正確位置插入

11、到正確位置 */ 11希爾排序的效率分析 雖然我們給出的算法是三層循環(huán),最外層循環(huán)為log2n數(shù)量級,中間的for循環(huán)是n數(shù)量級的,內(nèi)循環(huán)遠(yuǎn)遠(yuǎn)低于n數(shù)量級,因為當(dāng)分組較多時,組內(nèi)元素較少;此循環(huán)次數(shù)少;當(dāng)分組較少時,組內(nèi)元素增多,但已接近有序,循環(huán)次數(shù)并不增加。因此,希爾排序的時間復(fù)雜性在O(nlog2n)和O(n2 )之間,大致為O(n1. 3)。 由于希爾排序?qū)γ總€子序列單獨比較,在比較時進(jìn)行元素移動,有可能改變相同排序碼元素的原始順序,因此希爾排序是不穩(wěn)定的。129.3 交換排序交換排序 主要是通過排序表中兩個記錄關(guān)鍵碼的比較,若與排序主要是通過排序表中兩個記錄關(guān)鍵碼的比較,若與排序要求

12、相逆(不符合升序或降序),則將兩者交換。要求相逆(不符合升序或降序),則將兩者交換。9.3.1 冒泡排序冒泡排序 冒泡排序的基本思想:冒泡排序的基本思想:通過對待排序序列從前向后,依通過對待排序序列從前向后,依次比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,使排序碼較次比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,使排序碼較大的元素逐漸從前部移向后部。大的元素逐漸從前部移向后部。 因為排序的過程中,各元素不斷接近自己的位置,如果因為排序的過程中,各元素不斷接近自己的位置,如果一趟比較下來沒有進(jìn)行過交換,就說明序列有序,因此要在一趟比較下來沒有進(jìn)行過交換,就說明序列有序,因此要在排序過程中設(shè)置一個標(biāo)志排序過

13、程中設(shè)置一個標(biāo)志swap判斷元素是否進(jìn)行過交換。從判斷元素是否進(jìn)行過交換。從而減少不必要的比較。而減少不必要的比較。130 1 2 3 4 5 6 7 849493838656597977676131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。

14、若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序140 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n -

15、1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列

16、將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序150 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一

17、趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序160 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟

18、。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49

19、、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序170 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程

20、:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序180 1 2 3 4 5 6 7 849384938656576977697131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟

21、,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65

22、、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序190 1 2 3 4 5 6 7 849384938656576977697131327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元

23、素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序200 1 2 3 4 5 6 7 849384938656576977613971327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,

24、針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76

25、、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序210 1 2 3 4 5 6 7 849384938656576977613971327274949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較

26、兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序220 1 2 3 4 5 6 7 849384938656576977613271327974949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1

27、至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27

28、、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序230 1 2 3 4 5 6 7 849384938656576977613271327974949冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元

29、素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序240 1 2 3 4 5 6 7 849384938656576977613271327499749 冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個

30、個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用

31、起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序250 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素

32、開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序260 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟

33、。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列

34、 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序270 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩

35、個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序280 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具體過程 若若序列中有序列中有

36、n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任

37、何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序290 1 2 3 4 5 6 7 8384965761327499738496576132749973849651376274997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元

38、素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序300 1 2 3 4 5 6 7 83849657613274997384965761327499738496513762

39、74997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束

40、條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序310 1 2 3 4 5 6 7 8384965761327499738496576132749973849651327764997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,

41、針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序320 1 2 3 4 5 6 7 838496576132749973

42、8496576132749973849651327764997冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素

43、。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序330 1 2 3 4 5 6 7 8384965761327499738496576132749973849651327497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至

44、Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序340 1 2 3

45、4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位

46、置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序350 1 2 3 4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第

47、元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法

48、進(jìn)行用起泡排序的方法進(jìn)行排序排序360 1 2 3 4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個

49、相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序370 1 2 3 4 5 6 7 8384965761327499738496513274976973849136527497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1

50、 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、

51、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序380 1 2 3 4 5 6 7 8384965761327499738496513274976973849136527497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。

52、若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序390 1 2 3 4 5 6 7 8384965761327499738496513274976973849132765497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通

53、常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程

54、中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序400 1 2 3 4 5 6 7 8384965761327499738496513274976973849132765497697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一

55、趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序410 1 2 3 4 5 6 7 8384965761327499738496513274976973849132749657697冒泡

56、排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:

57、在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序420 1 2 3 4 5 6 7 8384965761327499738491327496576973849132749657697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對

58、第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序430 1 2 3 4 5 6 7 8384965761327499738491327

59、496576973849132749657697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個元素進(jìn)行。 第第 n-1 趟,針趟,針對第對第 R1 至至 R2 個元素進(jìn)行。個元素進(jìn)行。 每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的每一趟進(jìn)行的過程:從第一個元素開始,比較兩個相鄰的元素。若相鄰的元素的相對位置不正確元素的相對位置不正確,則進(jìn)行交換;否則繼續(xù)比較下面兩個相鄰的元素。則進(jìn)行交換;

60、否則繼續(xù)比較下面兩個相鄰的元素。 結(jié)束條件結(jié)束條件:在任何一趟進(jìn)行過程中,未出現(xiàn)交換。在任何一趟進(jìn)行過程中,未出現(xiàn)交換。 如如: 將序列將序列 49、38、65、97、76、13、27、49 用起泡排序的方法進(jìn)行用起泡排序的方法進(jìn)行排序排序440 1 2 3 4 5 6 7 8384965761327499738491327496576973813492749657697冒泡排序的具體過程 若若序列中有序列中有 n 個元素,通常進(jìn)行個元素,通常進(jìn)行 n - 1 趟。第趟。第 1 趟,針對第趟,針對第R1 至至Rn個個元素進(jìn)行。第元素進(jìn)行。第 2 趟,針對第趟,針對第 R1 至至 Rn1 個元素進(jìn)行。個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論