原文链接:http://blog.youkuaiyun.com/morewindows/article/details/6657829
简单
void BubbleSort1(int *a,int n){
int i,j;
for(i = 0;i < n;i++)
for(j = 1;j < n - i;j++)
if(a[j - 1] > a[j])
swap(a[j - 1],a[j]);
}
进阶
void BubbleSort2(int *a,int n){
int j;
bool flag = true;
while(flag){
flag = false;
for(j = 1;j < n;j++){
if(a[j - 1] > a[j]){
swap(a[j - 1],a[j]);
flag = true;
}
}
n--;
}
}
高级
void BubbleSort3(int *a,int n){
int i,j;
int flag;
flag = n;
while(flag){
i = flag;
flag = 0;
for(j = 1;j < i;j++)
if(a[j - 1] > a[j]){
swap(a[j - 1],a[j]);
flag = j;
}
}
}