//============================================================================ // Name : BubbleSort.cpp // Author : fffff // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; /* * 改進版的冒泡排序 */ void bubbleSort(int data[],int len){ /* * 定義標記flag來判定在此輪循環中是否 * 發生過交換,如果沒有則說明此輪已經 * 將數據排好,不需要再繼續進行交換 * 提前結束就可以提高效率 */ bool flag ; int temp; for(int i=len-1;i>0;i--){ flag = false; for(int j=0;j<i;j++){ if(data[j]>data[j+1]){ temp = data[j+1]; data[j+1] = data[j]; data[j] = temp; flag = true; } } if(flag==false) break; } } void print(int data[],int len){ for(int i = 0;i<len;i++){ cout<<data[i]<<" "; } cout<<endl; } int main() { int data[] = {4,2,6,8,3,1,9,5,7,0,22,12,45,33,4,23,13,16,21,20}; bubbleSort(data,sizeof(data)/sizeof(data[0])); print(data,sizeof(data)/sizeof(data[0])); }