此代码有得有失,他的时间复杂度根据数据内容变化,最高会比普通bubble sort多循环一次,但是他只会循环到排完序后多一次。
void bubbleSort(int arr[], int n)
{
int i,temp,flag=1;
while(flag==1){
flag=0;
for(i=0;i<n-1;i++){
if(arr[i]>arr[i+1]){
temp=arr[i+1];
arr[i+1]=arr[i];
arr[i]=temp;
flag=1;
}
}
}
}