實驗目的:學會冒泡排序演算法實驗內容:實現冒泡排序演算法,並將之定義為一個函數,其中參數是指向數組的指標變數* 程式頭部注釋開始* 程式的著作權和版本聲明部分* Copyright (c) 2011, 煙台大學電腦學院學生* All rights reserved.* 檔案名稱: * 作 者: 張傳新 * 完成日期: 2012 年 4月 12日* 版 本號: 1
* 對任務及求解方法的描述部分* 輸入描述:要排序的資料在程式中初始化* 問題描述:實現冒泡排序* 程式輸出:排序後的結果* 程式頭部的注釋結束(此處也刪除了斜杠)
#include <iostream>using namespace std;void bubble_sort(int *p, int num); //排序void output_array(int*, int);//輸出排序後的數組int main( ) {int a[20]={86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};int b[15]={27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};bubble_sort(a,20); //用冒泡法按降序排序a中元素output_array(a,20); //輸出排序後的數組bubble_sort(b,15); //用冒泡法按降序排序b中元素output_array(b,15); //輸出排序後的數組return 0;}//下面定義自訂函數void bubble_sort(int *p, int num){int i,j,t;//i,j為控制變數,t為中間變數for(j=0;j<=num-1;j++){for(i=0;i<num-1-j;i++){if(*(p+i+1)>*(p+i))//如果下一個數大於前一個數,交換位置{t=*(p+i);*(p+i)=*(p+i+1);*(p+i+1)=t;} }}}void output_array(int*p, int num){int i;for (i=0;i<num;i++) {cout<<*(p+i)<<" "; }cout<<endl;}
運行結果:
經驗積累:冒泡排序很形象,不斷地把大一點的或小一點的往前移,總會有排完的時候,
我覺得生活一樣,不斷把解決的問題放在後面,把新的問題,重要的問題放在前面,當
你解決完問題時,你走過的路將顯示在你的腳下!!!