这个C++冒泡法程序怎么优化?

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:42:01
#define N 10
#include "stdio.h"
main()
{ int a[N],i,j,x;
printf("please write a shuzu:\n");
for(i=0;i<N;++i) scanf("%d",&a[i]);
printf("please write:\n");
for(i=0;i<N;++i) printf("%6d",a[i]);
printf("\n");
for(j=1;j<N;j++)
for(i=N-2;i>=0;i--)
if (a[i]>a[i+1])
{ x=a[i]; a[i]=a[i+1]; a[i+1]=x;}
for(i=0;i<N;++i) printf("%6d",a[i]);
printf("\nEND.\n");
}

void sort(int a[],int n)
{int i,j,t;
n--;
while(n>0)
{j=0;
for(i=0;i<n;i++)
if(a[i]>a[i+1])
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
j=i;
}
n=j;
}
}
j作为标记,记录每次循环后的位置,这个可以大大省去不必要的循环
这个是主体,其他的你自己填