Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134915
  • 博文数量: 33
  • 博客积分: 287
  • 博客等级: 二等列兵
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-13 23:06
文章分类
文章存档

2015年(3)

2014年(13)

2013年(8)

2012年(9)

我的朋友

分类: C/C++

2014-02-25 09:53:52

看了几个程序,有冒泡排序、归并排序、插入排序等。
冒泡排序,是时间常数最大的,每次循环将最大的元素放到最后,
插入排序,每次取出后一个元素,和前面的元素比较,大的放在后面。
归并排序,

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define len 5

  4. int a[len]={11,5,2,4,7};

  5. void insert()
  6. {
  7.     int tmp;
  8.     int i,j,m;
  9.     for( i=0;i<len-1;i++)
  10.     {
  11.         for( j=0;j<=i;j++)
  12.         {
  13.             tmp=a[j+1];


  14.             if(a[j]>a[j+1])
  15.             {


  16.                 a[j+1]=a[j];

  17.                 a[j]=tmp;

  18.             }
  19.         }
  20.         // for(m=0;m<len;m++)
  21.         // printf("buble iiiiiii a[%d]=%d\n",m,a[m]);
  22.         printf("%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4]);


  23.     }



  24. }


  25. void buble()
  26. {
  27.     int tmp;
  28.     int i,j,m;
  29.     for ( i=0;i<len;i++)
  30.     {
  31.         for( j=0;j<len-i-1;j++)
  32.         {
  33.             if(a[j]>a[j+1])
  34.             {
  35.                 tmp=a[j];
  36.                 a[j]=a[j+1];
  37.                 a[j+1]=tmp;
  38.             }


  39.             //printf("buble i= %d a[%d]=%d\n",i,j,a[j]);
  40.         }

  41.         for(m=0;m<len;m++)
  42.             printf("buble bbbbb a[%d]=%d\n",m,a[m]);


  43.     }


  44. }


  45. int main(void)
  46. {
  47.     // int a[len]={10,5,2,4,7}
  48.     int i;
  49.     for(i=0;i<len;i++)
  50.         printf("buble x a[%d]=%d\n",i,a[i]);

  51.     insert();
  52.     //buble();

  53.     for(i=0;i<len;i++)
  54.         printf("buble xxx a[%d]=%d\n",i,a[i]);
  55.     // buble( a[len],len);

  56. }
插入排序图例:

归并排序:

将大的序列转换成小的
阅读(1198) | 评论(0) | 转发(0) |
0

上一篇:变量的存储布局

下一篇:整理QT旧的程序

给主人留下些什么吧!~~