回复:(–★–)//楼主朋友,如果这样"冒泡"是否好理解...
以下是引用–★–在2006-5-2 4:38:00的发言:
//楼主朋友,如果这样"冒泡"是否好理解些?
#include<stdio.h>
#define N 10
int main( )
{ int a[N]={1,4,5,8,7,3,2,0,9,6};//N个任意整数
int i,j;
for(i=1;i<=N-1;i++)//第i轮,i=1,2,3,...,N-1
for(j=1;j<=N-i;j++)//第j次,j=1,2,3,...,N-i
if(a[j-1]>a[j])//此处是按升序排列
{int t=a[j-1];a[j-1]=a[j];a[j]=t;}
//至此,排序其实已经完成。俺来看看效果吧:
for(i=0;i<N;i++)printf("%i ",a[i]);
printf("\n");
return 0;
}
再次为本人的程序鼓吹一下:如果内循环头中 i 错为 1 ,运行起来仍正常。当然效率要下降50%。LZ若不明可再发帖,我必复答你!