冒泡排序
int i,j;
for(i=size;i>1;i--){
for(j=1;j<i;j++){
if(r[j]>r[j+1]){
r[0] = r[j];
r[j] = r[j+1];
r[j+1] = r[0];
}
}
}
通过布尔值改进冒泡排序
int i,j;
bool change = 0;
for(i=size;i>1;i--){
change = 0 ;
for(j=1;j<i;j++){
if(r[j]>r[j+1]){
r[0] = r[j];
r[j] = r[j+1];
r[j+1] = r[0];
change = 1;
}
}
if(0 == change) break;
}
通过记录最后一次交换位置改进冒泡排序
int i,j,change=0,k=-1;
for(i=size;i>1;i--){
for(j=1;j<i;j++){
k = change;
if(r[j]>r[j+1]){
r[0] = r[j];
r[j] = r[j+1];
r[j+1] = r[0];
change = j + 1;
}
}
i = change ;
if(change == k) break;
}