冒泡排序,冒泡排序算法
//============================================================================
// 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]));
}