思路:将相邻两个数档禅比山毕较,将小的调到前边。如下所示:
98 8 8 8 8
895 5 5 5
55 94 4 4
44 4 92 2
22 2 29 0
00 0 00 9
若有六个数,第一趟 第一次将8和9对调,第二次将9和5对调___如此共进行五次,得到第六列的结果。
最大数“沉底”逗蠢芹。小的数“浮起”。之后再对余下的前面五个数按此法进行比较,第二趟:经过四次比较与交换,得到次大数8。如此进行下去,需要五趟即可。如果有n个数则需进行n-1趟比较,在第j趟比较中需要进行n-j次两两比较。
其程序如下:
#include "stdio.h"
void main ()
{
int a[10]
int i,j,t
printf("input 10 numbers :\n")
for(i=0i<10i++)
scanf("%d",&a[i])
printf("\n")
for(j=0j<9j++)
for(i=0i<9-ji++)
if(a[i]>a[i+1])
{ t=a[i]
a[i]=a[i+1]
a[i+1]=t }
printf("the sorted numbers :\n")
for(i=0i<10i++)
printf("%d ",a[i])
printf("\n")
}
其实这些书上都有,好好看看书就会做的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)