最简单的冒泡排序优化
#include<stdio.h>
int bubble(int a[],int n){
int flag=1;
int i=0,j=0;
for(i=0;i<n-1;i++){
flag = 0; //设置一个标志,
for(j=0;j<n-1-i;j++){
int temp;
if(a[j+1]<a[j]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 1; //如果if里面有交换内容flag就变成了1,就不会跳出循环
}
}
print(a,n);
if(flag == 0) break;
}
return 0;
}
int print(int arr[],int n){
int i;
for(i=0;i<n;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
int main(){
int n,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
bubble(a,n);
return 0;
}