alEn MiNIROoM

  :: 首页 :: 新随笔 :: 联系 :: :: 管理 ::

三种排序方法

冒泡排序:
for(i=0;i<10&&!swap;i++)

{

swap=1;

for(j=0;j<10-I;j++)

if(a[j]<a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;swap=0;}

}


选择排序:

for(i=0;i<10;i++)

{ p=i;

for(j=i+1;j<10;j++)

if(a[p]<a[j])

p=j;

if(p!=i)

{t=a[i];a[i]=a[j];a[j]=t;}

}


插入排序:

for(i=1;i<10;i++)//i 从 0 开始或者 1 开始都可以。其它不变。

for(j=i;j>0;j--)

if(a[j]<a[j-1])

{t=a[j];a[j]=a[j-1];a[j-1]=t;}


main()

{

int i,j,t,a[]={12,11,2,3,6,67,89,0,1,3};

for(i=1;i<10;i++)

{t=a[i];

j=i-1;

while(j>=0&&t>a[i])

{a[j+1]=a[j];

j--;

}

a[j+1]=t;

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

}

posted on 2004-11-27 20:53  过儿  阅读(333)  评论(1)    收藏  举报