大學(xué)C語言設(shè)計(jì)冒泡排序和選擇排序課件_第1頁
大學(xué)C語言設(shè)計(jì)冒泡排序和選擇排序課件_第2頁
大學(xué)C語言設(shè)計(jì)冒泡排序和選擇排序課件_第3頁
大學(xué)C語言設(shè)計(jì)冒泡排序和選擇排序課件_第4頁
大學(xué)C語言設(shè)計(jì)冒泡排序和選擇排序課件_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

簡單排序算法-冒泡排序簡單排序算法-冒泡排序三個(gè)整數(shù)排序YN輸出a,b,c的值輸入三個(gè)整數(shù)a,b,ca<b?交換a和b的值a<c?交換a和c的值b<c?交換b和c的值YYNN開始結(jié)束算法:三個(gè)整數(shù)排序BEGINinputa,b,c;/*輸入三個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifb<cthen交換b和c的值;printa,b,c;END三個(gè)整數(shù)排序YN輸出a,b,c的值輸入三個(gè)整數(shù)a,b,ca<五個(gè)整數(shù)排序算法:三個(gè)整數(shù)排序BEGINinputa,b,c;/*輸入三個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifb<cthen交換b和c的值;printa,b,c;END算法:五個(gè)整數(shù)排序BEGINinputa,b,c,d,e;/*輸入五個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifa<dthen交換a和d的值;ifa<ethen交換a和e的值;

/*找出最大數(shù)并放在a中*/ifb<cthen交換b和c的值;ifb<dthen交換b和d的值;ifb<ethen交換b和e的值;

/*找出第二大的數(shù)并放在b中*/ifc<dthen交換c和d的值;ifc<ethen交換c和e的值;

/*找出第三大的數(shù)并放在c中*/ifd<ethen交換d和e的值;

/*找出第四大的數(shù)并放在d中*/printa,b,c,d,e;END推廣至5個(gè)整數(shù)排序五個(gè)整數(shù)排序算法:三個(gè)整數(shù)排序算法:五個(gè)整數(shù)排序if排序時(shí)數(shù)據(jù)集中存放在一段空間中在前面的排序算法中,存放數(shù)據(jù)的位置(以a、b、c、d、e表示)之間沒有聯(lián)系下面,約定排序時(shí)數(shù)據(jù)集中存放在一段存儲(chǔ)空間中例如:下面的7個(gè)整數(shù)連續(xù)地存放在位置1~位置7中1234567431891355743排序時(shí)數(shù)據(jù)集中存放在一段空間中在前面的排序算法中,存放數(shù)據(jù)的簡單排序方法簡單排序方法有多種,這里我們介紹冒泡(起泡)排序法。冒泡排序法(bubblesort)的基本思想是:通過對(duì)相鄰元素的比較和交換,使全部記錄排列有序。冒泡排序的過程:對(duì)每兩個(gè)相鄰的元素進(jìn)行比較,若為逆序,則將兩者交換,這樣的操作反復(fù)進(jìn)行,直至全部記錄都比較、交換完畢為止。如此經(jīng)過一趟冒泡排序之后,就將關(guān)鍵字最大(或最小)的元素安排在最后一個(gè)(或第一個(gè))元素的位置上。然后,對(duì)后n-1個(gè)元素重復(fù)進(jìn)行同樣的操作,則將具有次大(或次小)元素安排在倒數(shù)(或正數(shù))第二個(gè)元素的位置上。重復(fù)以上過程,直至沒有元素需要交換時(shí)為止。至此,整個(gè)序列的記錄按關(guān)鍵字由小到大的順序排列完畢。簡單排序方法簡單排序方法有多種,這里我們介紹冒泡(起泡)排序冒泡排序方法1234567431891355743以7個(gè)元素為例說明冒泡排序位置1~位置7的元素初始排列如下所示冒泡排序方法1234567431891355743以7個(gè)元素冒泡排序方法1234567431891355743第一步:令位置1和位置2的元素比較,若位置1的元素大,則交換交換1234567184391355743第二步:令位置2和位置3的元素比較,若位置2的元素大,則交換交換1234567189431355743冒泡排序方法1234567431891355743第一步:令冒泡排序方法1234567189431355743第三步:令位置3和位置4的元素比較,若位置3的元素大,則交換交換1234567189134355743第四步:令位置4和位置5的元素比較,若位置4的元素大,則交換第五步:令位置5和位置6的元素比較,若位置5的元素大,則交換交換1234567189134375543冒泡排序方法1234567189431355743第三步:令冒泡排序方法1234567189134375543第六步:令位置6和位置7的元素比較,若位置6的元素大,則交換交換1234567189134374355最大元素被交換到最后一個(gè)位置(位置7)下一趟則需將次大元素交換到倒數(shù)第二個(gè)位置冒泡排序方法1234567189134375543第六步:令冒泡排序方法1234567189134374355123456791813437435512345679131843743551234567913187434355次大元素被交換到倒數(shù)第二個(gè)位置(位置6)下一趟則需將第三大元素交換到倒數(shù)第三個(gè)位置,依此類推冒泡排序方法123456718913437435512345冒泡排序方法以7個(gè)元素為例說明冒泡排序,存放每個(gè)元素的位置以序號(hào)進(jìn)行標(biāo)記經(jīng)過六趟冒泡排序后,位置1~位置7中的元素排列如下所示12345677913184343551234567431891355743排序冒泡排序方法以7個(gè)元素為例說明冒泡排序,存放每個(gè)元素的位置以冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1N進(jìn)行第i趟冒泡排序開始冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1Nj←1比較aj和aj+1如果aj>aj+1則交換j←j+1NYj表示元素的位置aj與aj+1是相鄰的元素j<=7-i?開始冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i冒泡排序算法inta[7];i←1i<=6?結(jié)束Yi←i+1Nj←1比較aj和aj+1如果aj>aj+1則交換j←j+1NYj<=7-i?開始for(i=0;i<=5;i++){for(j=0;j<=5-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}冒泡排序算法inta[7];i←1i<=6?結(jié)束Yi簡單選擇排序簡單選擇排序選擇排序方法1234567431891355743以7個(gè)元素為例說明選擇排序位置1~位置7的元素初始排列如下所示選擇排序方法1234567431891355743以7個(gè)元素選擇排序方法1234567431891355743第一趟:從7個(gè)元素中選出最小者,將其換入位置1,過程為:令min_elem表示最小元素(初值為位置1的元素),k為最小元素的位置序號(hào)(初值為1),逐一比較,找出最小元素及其位置位置6的元素最小交換1234567743913554343選擇排序方法1234567431891355743第一趟:從選擇排序方法1234567718913554343第二趟:從6個(gè)元素中選出最小者,將其換入位置2,過程為:令min_elem表示最小元素(初值為位置2的元素),k為最小元素的位置序號(hào)(初值為2),逐一比較,找出最小元素及其位置位置3的元素最小交換1234567791813554343選擇排序方法1234567718913554343第二趟:從選擇排序方法1234567791813554343第三趟:從5個(gè)元素中選出最小者,將其換入位置3,過程為:令min_elem表示最小元素(初值為位置3的元素),k為最小元素的位置序號(hào)(初值為3),逐一比較,找出最小元素及其位置位置4的元素最小交換1234567791318554343選擇排序方法1234567791813554343第三趟:從選擇排序方法1234567791318554343第四趟:從4個(gè)元素中選出最小者,將其換入位置4,過程為:令min_elem表示最小元素(初值為位置4的元素),k為最小元素的位置序號(hào)(初值為4),逐一比較,找出最小元素及其位置位置4的元素最小交換1234567791318554343選擇排序方法1234567791318554343第四趟:從選擇排序方法1234567791318554343第五趟:從3個(gè)元素中選出最小者,將其換入位置5,過程為:令min_elem表示最小元素(初值為位置5的元素),k為最小元素的位置序號(hào)(初值為5),逐一比較,找出最小元素及其位置位置6的元素最小交換1234567791318435543選擇排序方法1234567791318554343第五趟:從選擇排序方法1234567791318435543第六趟:從2個(gè)元素中選出最小者,將其換入位置6,過程為:令min_elem表示最小元素(初值為位置6的元素),k為最小元素的位置序號(hào)(初值為6),逐一比較,找出最小元素及其位置位置7的元素最小交換1234567791318434355選擇排序方法1234567791318435543第六趟:從選擇排序方法1234567431891355743以7個(gè)元素為例,經(jīng)過6趟選擇,將元素排列有序排序1234567791318434355選擇排序方法1234567431891355743以7個(gè)元素選擇排序算法7個(gè)元素進(jìn)行選擇排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1N進(jìn)行第i趟選擇排序開始選擇排序算法7個(gè)元素進(jìn)行選擇排序時(shí),需要六趟,用i表示趟數(shù)i選擇排序算法7個(gè)元素進(jìn)行選擇排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1Nk表示最小元素的位置k←i,j←i+1比較ak和aj如果aj<ak則令k=jj←j+1NY交換ak和aj開始j<=7?選擇排序算法7個(gè)元素進(jìn)行選擇排序時(shí),需要六趟,用i表示趟數(shù)i選擇排序算法i←1i<=6?結(jié)束Yi←i+1Nk←i,j←i+1比較ak和aj如果aj<ak則令k=jj←j+1NY交換ak和aj開始j<=7?inta[7];for(i=0;i<=5;i++){k=i;for(j=i+1;j<=6;j++)if(a[k]>a[j])k=j;temp=a[j];a[j]=a[k];a[k]=temp;}選擇排序算法i←1i<=6?結(jié)束Yi←i+1Nk←簡單排序算法-冒泡排序簡單排序算法-冒泡排序三個(gè)整數(shù)排序YN輸出a,b,c的值輸入三個(gè)整數(shù)a,b,ca<b?交換a和b的值a<c?交換a和c的值b<c?交換b和c的值YYNN開始結(jié)束算法:三個(gè)整數(shù)排序BEGINinputa,b,c;/*輸入三個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifb<cthen交換b和c的值;printa,b,c;END三個(gè)整數(shù)排序YN輸出a,b,c的值輸入三個(gè)整數(shù)a,b,ca<五個(gè)整數(shù)排序算法:三個(gè)整數(shù)排序BEGINinputa,b,c;/*輸入三個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifb<cthen交換b和c的值;printa,b,c;END算法:五個(gè)整數(shù)排序BEGINinputa,b,c,d,e;/*輸入五個(gè)整數(shù)*/ifa<bthen交換a和b的值;ifa<cthen交換a和c的值;ifa<dthen交換a和d的值;ifa<ethen交換a和e的值;

/*找出最大數(shù)并放在a中*/ifb<cthen交換b和c的值;ifb<dthen交換b和d的值;ifb<ethen交換b和e的值;

/*找出第二大的數(shù)并放在b中*/ifc<dthen交換c和d的值;ifc<ethen交換c和e的值;

/*找出第三大的數(shù)并放在c中*/ifd<ethen交換d和e的值;

/*找出第四大的數(shù)并放在d中*/printa,b,c,d,e;END推廣至5個(gè)整數(shù)排序五個(gè)整數(shù)排序算法:三個(gè)整數(shù)排序算法:五個(gè)整數(shù)排序if排序時(shí)數(shù)據(jù)集中存放在一段空間中在前面的排序算法中,存放數(shù)據(jù)的位置(以a、b、c、d、e表示)之間沒有聯(lián)系下面,約定排序時(shí)數(shù)據(jù)集中存放在一段存儲(chǔ)空間中例如:下面的7個(gè)整數(shù)連續(xù)地存放在位置1~位置7中1234567431891355743排序時(shí)數(shù)據(jù)集中存放在一段空間中在前面的排序算法中,存放數(shù)據(jù)的簡單排序方法簡單排序方法有多種,這里我們介紹冒泡(起泡)排序法。冒泡排序法(bubblesort)的基本思想是:通過對(duì)相鄰元素的比較和交換,使全部記錄排列有序。冒泡排序的過程:對(duì)每兩個(gè)相鄰的元素進(jìn)行比較,若為逆序,則將兩者交換,這樣的操作反復(fù)進(jìn)行,直至全部記錄都比較、交換完畢為止。如此經(jīng)過一趟冒泡排序之后,就將關(guān)鍵字最大(或最小)的元素安排在最后一個(gè)(或第一個(gè))元素的位置上。然后,對(duì)后n-1個(gè)元素重復(fù)進(jìn)行同樣的操作,則將具有次大(或次小)元素安排在倒數(shù)(或正數(shù))第二個(gè)元素的位置上。重復(fù)以上過程,直至沒有元素需要交換時(shí)為止。至此,整個(gè)序列的記錄按關(guān)鍵字由小到大的順序排列完畢。簡單排序方法簡單排序方法有多種,這里我們介紹冒泡(起泡)排序冒泡排序方法1234567431891355743以7個(gè)元素為例說明冒泡排序位置1~位置7的元素初始排列如下所示冒泡排序方法1234567431891355743以7個(gè)元素冒泡排序方法1234567431891355743第一步:令位置1和位置2的元素比較,若位置1的元素大,則交換交換1234567184391355743第二步:令位置2和位置3的元素比較,若位置2的元素大,則交換交換1234567189431355743冒泡排序方法1234567431891355743第一步:令冒泡排序方法1234567189431355743第三步:令位置3和位置4的元素比較,若位置3的元素大,則交換交換1234567189134355743第四步:令位置4和位置5的元素比較,若位置4的元素大,則交換第五步:令位置5和位置6的元素比較,若位置5的元素大,則交換交換1234567189134375543冒泡排序方法1234567189431355743第三步:令冒泡排序方法1234567189134375543第六步:令位置6和位置7的元素比較,若位置6的元素大,則交換交換1234567189134374355最大元素被交換到最后一個(gè)位置(位置7)下一趟則需將次大元素交換到倒數(shù)第二個(gè)位置冒泡排序方法1234567189134375543第六步:令冒泡排序方法1234567189134374355123456791813437435512345679131843743551234567913187434355次大元素被交換到倒數(shù)第二個(gè)位置(位置6)下一趟則需將第三大元素交換到倒數(shù)第三個(gè)位置,依此類推冒泡排序方法123456718913437435512345冒泡排序方法以7個(gè)元素為例說明冒泡排序,存放每個(gè)元素的位置以序號(hào)進(jìn)行標(biāo)記經(jīng)過六趟冒泡排序后,位置1~位置7中的元素排列如下所示12345677913184343551234567431891355743排序冒泡排序方法以7個(gè)元素為例說明冒泡排序,存放每個(gè)元素的位置以冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1N進(jìn)行第i趟冒泡排序開始冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i←1i<=6?結(jié)束Yi←i+1Nj←1比較aj和aj+1如果aj>aj+1則交換j←j+1NYj表示元素的位置aj與aj+1是相鄰的元素j<=7-i?開始冒泡排序算法7個(gè)元素進(jìn)行冒泡排序時(shí),需要六趟,用i表示趟數(shù)i冒泡排序算法inta[7];i←1i<=6?結(jié)束Yi←i+1Nj←1比較aj和aj+1如果aj>aj+1則交換j←j+1NYj<=7-i?開始for(i=0;i<=5;i++){for(j=0;j<=5-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}冒泡排序算法inta[7];i←1i<=6?結(jié)束Yi簡單選擇排序簡單選擇排序選擇排序方法1234567431891355743以7個(gè)元素為例說明選擇排序位置1~位置7的元素初始排列如下所示選擇排序方法1234567431891355743以7個(gè)元素選擇排序方法1234567431891355743第一趟:從7個(gè)元素中選出最小者,將其換入位置1,過程為:令min_elem表示最小元素(初值為位置1的元素),k為最小元素的位置序號(hào)(初值為1),逐一比較,找出最小元素及其位置位置6的元素最小交換1234567743913554343選擇排序方法1234567431891355743第一趟:從選擇排序方法1234567718913554343第二趟:從6個(gè)元素中選出最小者,將其換入位置2,過程為:令min_elem表示最小元素(初值為位置2的元素),k為最小元素的位置序號(hào)(初值為2),逐一比較,找出最小元素及其位置位置3的元素最小交換1234567791813554343選擇排序方法1234567718913554343第二趟:從選擇排序方法1234567791813554343第三趟:從5個(gè)元素中選出最小者,將其換入位置3,過程為:令min_elem表示最小元素(初值為位置3的元素),k為最小元素的位置序號(hào)(初值為3),逐一比較,找出最小元素及其位置位置4的元素最小交換1234567791318554343選擇排序方法1234567791813554343第三趟:從選擇排序方法1234567791318554343第四趟:從4個(gè)元素中選出最小者,將其換入位置4,過程為:令min_elem表示最小元素(初值為位置4的元素),k為最小元素的位置序號(hào)(初值為4),逐一比較,找出最小元素及其位置位置4的元素最小交換1234567791318554343選擇排序方法1234567791318554343第四趟:從選擇排序方法1234567791318554343第五趟:從3個(gè)元素中選出最小者,將其換入位置5,過程為:令min_elem表示最小元素(初值為位置5的元素),k為最小元素的位置序號(hào)(初值為5),逐一比較,找出最小元素及其位置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論