Chinaunix首页 | 论坛 | 博客
  • 博客访问: 213340
  • 博文数量: 33
  • 博客积分: 1690
  • 博客等级: 上尉
  • 技术积分: 381
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-27 18:57
个人简介

吟游天地间,隐没市井中..

文章分类
文章存档

2014年(1)

2009年(6)

2008年(26)

我的朋友

分类: C/C++

2014-07-25 09:55:18

一般来说,插入排序都采用in-place在上实现。具体算法描述如下:
⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2~5
        
       

点击(此处)折叠或打开

  1. void insert_serch(int a[],int len)
  2. {
  3.     int i,j,key;
  4.     for(i=1;i<len+1;i++){
  5.         key = a[i];
  6.         j = i - 1;
  7.         while(j>=0 &&a[j]>key)
  8.         {
  9.             a[j+1] = a[j];
  10.             --j;
  11.         }
  12.         a[j+1]=key;
  13.     }
  14.     for(i=0;i<=9;i++)
  15.        printf("a[%d] is %d.\n",i,a[i]);
  16. }



阅读(1331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~