正在加载图片...
change=c i//while 3//Bubble Sort I 10.27 void Bubble_Sort2(inta[]ntn相邻两趟是反方向起泡的冒泡排序算法 low=0high=n-1;/冒泡的上下界 while(low<high&&change) change=0 for(i=ow,i<hgh;+)∥从上向下起泡 if(aPai+ID ak->a[i+1, change=1 high-;∥/修改上界 for(i=high;p>lowi-)∥从下向上起泡 if(aik<) a<->ai-1; change- low+;∥/修改下界 i//while //Bubble Sort2 void Bubble_Sort3(inta[] ,int n)对上一题的算法进行化简,循环体中只包含一次 冒泡 intb[3/b[0]为冒泡的下界b2]为上界b[无用 d=1b[0}=0b[2]=n-1;/d为冒泡方向的标识1为向上,1为向下 change=1 whileb[okb[ 2 ] &&change) for(i=b[1-d]l-b[tdl计+=d)∥统一的冒泡算法 if(-a[i+d])*d>0)∥注意这个交换条件 aj<->a[i+d]:change=c; }//while }//Bubble_Sort1 10.27 void Bubble_Sort2(int a[ ],int n)//相邻两趟是反方向起泡的冒泡排序算法 { low=0;high=n-1; //冒泡的上下界 change=1; while(low<high&&change) { change=0; for(i=low;i<high;i++) //从上向下起泡 if(a[i]>a[i+1]) { a[i]<->a[i+1]; change=1; } high--; //修改上界 for(i=high;i>low;i--) //从下向上起泡 if(a[i]<a[i-1]) { a[i]<->a[i-1]; change=1; } low++; //修改下界 }//while }//Bubble_Sort2 10.28 void Bubble_Sort3(int a[ ],int n)//对上一题的算法进行化简,循环体中只包含一次 冒泡 { int b[ 3 ]; //b[0]为冒泡的下界,b[ 2 ]为上界,b[1]无用 d=1;b[0]=0;b[ 2 ]=n-1; //d 为冒泡方向的标识,1 为向上,-1 为向下 change=1; while(b[0]<b[ 2 ]&&change) { change=0; for(i=b[1-d];i!=b[1+d];i+=d) //统一的冒泡算法 if((a[i]-a[i+d])*d>0) //注意这个交换条件 { a[i]<->a[i+d];
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有