




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 1西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 2YN輸出輸出a,b,c的值的值輸入三個整數輸入三個整數a,b,cab?交換交換a和和b的值的值ac?交換交換a和和c的值的值bc?交換交換b和和c的值的值YYNN開始開始結束結束算法:三個整數排序算法:三個整數排序BEGIN input a,b,c
2、; /*輸入三個整數輸入三個整數*/ if ab then 交換交換a和和b的值的值; if ac then 交換交換a和和c的值的值; if bc then 交換交換b和和c的值的值; print a,b,c; END西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 3算法:三個整數排序算法:三個整數排序BEGIN input a,b,c; /*輸入三個整數輸入三個整數*/ if ab then 交換交換a和和b的值的值; if ac then 交換交換a和和c的值的值
3、; if bc then 交換交換b和和c的值的值; print a,b,c; END算法:五個整數排序算法:五個整數排序BEGIN input a,b,c,d,e; /*輸入五個整數輸入五個整數*/ if ab then 交換交換a和和b的值的值; if ac then 交換交換a和和c的值的值; if ad then 交換交換a和和d的值的值; if ae then 交換交換a和和e的值的值; /*找出最大數并放在找出最大數并放在a中中*/ if bc then 交換交換b和和c的值的值; if bd then 交換交換b和和d的值的值; if be then 交換交換b和和e的值的值;
4、/*找出第二大的數并放在找出第二大的數并放在b中中*/ if cd then 交換交換c和和d的值的值; if ce then 交換交換c和和e的值的值; /*找出第三大的數并放在找出第三大的數并放在c中中*/ if de then 交換交換d和和e的值的值; /*找出第四大的數并放在找出第四大的數并放在d中中*/ print a,b,c,d,e; END推廣至推廣至5個個整數排序整數排序西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 4n在前面的排序算法中,存放數據的
5、位置在前面的排序算法中,存放數據的位置( (以以a a、b b、c c、d d、e e表示表示) )之間沒有聯系之間沒有聯系n下面,約定排序時數據集中存放在一段存儲空間中下面,約定排序時數據集中存放在一段存儲空間中n例如:下面的例如:下面的7 7個整數連續地存放在個整數連續地存放在位置位置11位置位置7 7中中1234567431891355743西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 5n簡單排序方法有多種,這里我們介紹簡單排序方法有多種,這里我們介紹冒泡冒泡
6、( (起泡起泡) )排序法。排序法。n冒泡排序法冒泡排序法(bubble sort)(bubble sort)的基本思想是的基本思想是: :通過對相鄰元素的比較和通過對相鄰元素的比較和交換,使全部記錄排列有序。交換,使全部記錄排列有序。n冒泡排序的過程:冒泡排序的過程:對每兩個相鄰的元素進行比較,若為逆序,則將對每兩個相鄰的元素進行比較,若為逆序,則將兩者交換,這樣的操作反復進行,直至全部記錄都比較、交換完畢兩者交換,這樣的操作反復進行,直至全部記錄都比較、交換完畢為止。如此經過一趟冒泡排序之后,就將關鍵字最大為止。如此經過一趟冒泡排序之后,就將關鍵字最大( (或最小或最小) )的元的元素安排
7、在最后一個素安排在最后一個( (或第一個或第一個) ) 元素的位置上。然后,對后元素的位置上。然后,對后n-1n-1個元個元素重復進行同樣的操作,則將具有次大素重復進行同樣的操作,則將具有次大( (或次小或次小) )元素安排在倒數元素安排在倒數( (或或正數正數) )第二個元素的位置上。重復以上過程,直至沒有元素需要交換第二個元素的位置上。重復以上過程,直至沒有元素需要交換時為止。至此,整個序列的記錄按關鍵字由小到大的順序排列完畢。時為止。至此,整個序列的記錄按關鍵字由小到大的順序排列完畢。西安電子科技大學計算機學院 - School of Computer Science & Eng
8、ineering, Xidian University, China 61234567431891355743n以以7 7個元素為例說明冒泡排序個元素為例說明冒泡排序n位置位置11位置位置7 7的元素初始排列如下所示的元素初始排列如下所示西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 71234567431891355743n第一步:令第一步:令位置位置1 1和位置和位置2 2的元素比較,若位置的元素比較,若位置1 1的元素大,則交換的元素大,則交換交換交換123456
9、7184391355743n第二步:令第二步:令位置位置2 2和位置和位置3 3的元素比較,若位置的元素比較,若位置2 2的元素大,則交換的元素大,則交換交換交換1234567189431355743西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 81234567189431355743n第三步:令第三步:令位置位置3 3和位置和位置4 4的元素比較,若位置的元素比較,若位置3 3的元素大,則交換的元素大,則交換交換交換1234567189134355743n第四步:令
10、第四步:令位置位置4 4和位置和位置5 5的元素比較,若位置的元素比較,若位置4 4的元素大,則交換的元素大,則交換n第五步:令第五步:令位置位置5 5和位置和位置6 6的元素比較,若位置的元素比較,若位置5 5的元素大,則交換的元素大,則交換交換交換1234567189134375543西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 91234567189134375543n第六步:令第六步:令位置位置6 6和位置和位置7 7的元素比較,若位置的元素比較,若位置6 6
11、的元素大,則交換的元素大,則交換交換交換1234567189134374355西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 101234567189134374355123456791813437435512345679131843743551234567913187434355西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 11n以以7 7個
12、元素為例說明冒泡排序,存放每個元素的位置以序號進行標個元素為例說明冒泡排序,存放每個元素的位置以序號進行標記記n經過六趟冒泡排序后,位置經過六趟冒泡排序后,位置11位置位置7 7中的元素排列如下所示中的元素排列如下所示12345677913184343551234567431891355743排序排序西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 12n7 7個元素進行冒泡排序時,個元素進行冒泡排序時,需要六趟,用需要六趟,用i i表示趟數表示趟數i 1i=6?結束結束
13、Yi i+1N進行第進行第i趟冒泡排序趟冒泡排序開始開始西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 13n7 7個元素進行冒泡排序時,個元素進行冒泡排序時,需要六趟,用需要六趟,用i i表示趟數表示趟數i 1iaj+1則交換則交換j j+1NYnj j表示元素的位置表示元素的位置na aj j與與a aj+1j+1是相鄰的元素是相鄰的元素j=7-i?j=7-i?開始開始西安電子科技大學計算機學院 - School of Computer Science &
14、Engineering, Xidian University, China 14nint a7;int a7;i 1iaj+1則交換則交換j j+1NYj=7-i?j=7-i?開始開始for(i = 0; i=5; i+)for(i = 0; i=5; i+) for(j = 0; j=5-i; j+) for(j = 0; j aj+1) if (aj aj+1) temp = aj; temp = aj; aj = aj+1; aj = aj+1; aj+1 = temp; aj+1 = temp; 西安電子科技大學計算機學院 - School of Computer Science &a
15、mp; Engineering, Xidian University, China 15西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 161234567431891355743n以以7 7個元素為例說明選擇排序個元素為例說明選擇排序n位置位置11位置位置7 7的元素初始排列如下所示的元素初始排列如下所示西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, Chi
16、na 171234567431891355743n第一趟:從第一趟:從7 7個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置1 1,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置1 1的元素),的元素),k k為最小元素的為最小元素的位置序號(初值為位置序號(初值為1 1),逐一比較,找出最小元素及其位置),逐一比較,找出最小元素及其位置位置位置6的元素最小的元素最小交換交換1234567743913554343西安電子科技大學計算機學院 - School of Computer Science & Enginee
17、ring, Xidian University, China 181234567718913554343n第二趟:從第二趟:從6 6個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置2 2,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置2 2的元素),的元素),k k為最小元素的為最小元素的位置序號(初值為位置序號(初值為2 2),逐一比較,找出最小元素及其位置),逐一比較,找出最小元素及其位置位置位置3的元素最小的元素最小交換交換1234567791813554343西安電子科技大學計算機學院 - School of Co
18、mputer Science & Engineering, Xidian University, China 191234567791813554343n第三趟:從第三趟:從5 5個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置3 3,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置3 3的元素),的元素),k k為最小元素的為最小元素的位置序號(初值為位置序號(初值為3 3),逐一比較,找出最小元素及其位置),逐一比較,找出最小元素及其位置位置位置4的元素最小的元素最小交換交換1234567791318554343
19、西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 201234567791318554343n第四趟:從第四趟:從4 4個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置4 4,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置4 4的元素),的元素),k k為最小元素的為最小元素的位置序號(初值為位置序號(初值為4 4),逐一比較,找出最小元素及其位置),逐一比較,找出最小元素及其位置位置位置4的元素最小
20、的元素最小交換交換1234567791318554343西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 211234567791318554343n第五趟:從第五趟:從3 3個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置5 5,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置5 5的元素),的元素),k k為最小元素的為最小元素的位置序號(初值為位置序號(初值為5 5),逐一比較,找出最小元素及其位
21、置),逐一比較,找出最小元素及其位置位置位置6的元素最小的元素最小交換交換1234567791318435543西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 221234567791318435543n第六趟:從第六趟:從2 2個元素中選出最小者,將其換入個元素中選出最小者,將其換入位置位置6 6,過程為:令,過程為:令min_elemmin_elem表示最小元素(初值為位置表示最小元素(初值為位置6 6的元素),的元素),k k為最小元素的為最小元素的位置序號(初值
22、為位置序號(初值為6 6),逐一比較,找出最小元素及其位置),逐一比較,找出最小元素及其位置位置位置7的元素最小的元素最小交換交換1234567791318434355西安電子科技大學計算機學院 - School of Computer Science & Engineering, Xidian University, China 231234567431891355743n以以7 7個元素為例,經過個元素為例,經過6 6趟選擇,將元素排列有序趟選擇,將元素排列有序排序排序1234567791318434355西安電子科技大學計算機學院 - School of Computer Science & Engineering,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南稅務高等專科學校《葡萄牙語視聽說(III)》2023-2024學年第二學期期末試卷
- 江蘇省江陰四校2024-2025學年高三3月模擬考生物試題含解析
- 浙江省蒼南縣2024-2025學年初三下學期綜合練習(二)英語試題試卷含答案
- 管理學廣告案例分析
- 私募基金培訓
- 2025勞動合同績效考核
- 2025私人買賣合同協議
- 氣管套管脫管護理流程
- 2025年實習生聘用合同范本
- 2025建筑施工合同范本(方案施工圖) 新手看施工圖紙
- 二襯帶模注漿施工方案
- 煤礦節電降耗管理措施
- 《英語委婉語與忌語》PPT課件.ppt
- 地域文化教學大綱(修訂本)
- 通用航空產業園項目商業計劃書范文參考
- 中國書法演變史
- 工商企業管理畢業論文范文
- 調查問卷設計-課件PPT
- 井下電纜著火應急演練預案
- APP開發合作協議通用版
- 小學數學 五進制
評論
0/150
提交評論