Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289937
  • 博文数量: 95
  • 博客积分: 618
  • 博客等级: 中士
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-28 13:39
文章分类

全部博文(95)

文章存档

2015年(65)

2013年(1)

2012年(10)

2011年(19)

分类: C/C++

2011-12-11 20:28:56

  1. /*
  2. *选择排序
  3. *每一趟无序的数据元素中选出最小的一个元素,
  4. *放在有序的部分的的最后
  5. */
  6. void chosesort(int *array,int len)
  7. {
  8.     int tmp,pos;
  9.     for (int i = 0;i < len-1;i++)
  10.     {
  11.         pos= i;
  12.         for (int j = i+1;j < len;j++)
  13.         {
  14.             if (array[pos] > array[j]) //选出最小元素
  15.             {
  16.                 pos = j;
  17.             }
  18.         }
  19.         tmp = array[pos];
  20.         array[pos] = array[i];
  21.         array[i] = tmp;
  22.     }
  23. }

  24. /*
  25. *插入排序
  26. *数组分为有序部分和无序部分,
  27. *每次选无序部分第一个插入到有序部分的相应位置上
  28. *重复操作,直到全部有序
  29. */
  30. void insertsort(int *array,int len)
  31. {
  32.     int tmp,j;
  33.     for(int i=1;i<len;i++) //默认第一个元素已有序,从第二个元素开始
  34.     {
  35.         tmp=array[i];
  36.         for(j=i;j>0&&array[j-1]>tmp;j--) //在有序部分查找合适的位置
  37.         {
  38.             array[j]=array[j-1]; //有序部分后移一个位置
  39.         }
  40.         array[j]=tmp; //插入
  41.     }
  42. }
阅读(1569) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~