码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构_直接插入排序法

时间:2015-08-11 00:06:43      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

 详细见这篇博客:http://www.cnblogs.com/skywang12345/p/3596881.html

直接插入排序介绍

直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。

 

子集完成的完整代码:

#include"stdio.h"

/*
 * 直接插入排序
 * 2015-08-10:May
 * 参数说明:
 *     a -- 待排序的数组
 *     n -- 数组的长度
 */
void insert_sort(int a[], int n)
{
    int i, j, k;
    for(i=1;i<n;i++)
    {
        for(j=i-1;j>=0;j--)
        {
            if(a[i]>a[j])
            {
              break;//找到位置了,找到大于某个位置的地方就停下
            }
        }
        if(j!=i-1) // 找到位置了开始将位置后面的往后移,如果恰好就不用移动
        {
            int temp=a[i];//先将要插入的存起来,会被覆盖
            for(k=i-1;k>j;k--)
            {
                a[k+1]=a[k]; //都往后移动
            }
            a[j+1]=temp;  //插入进来;
        }

    }



}
void main(void)
{
    int a[]={5,8,3,1,12,1};
    insert_sort(a,6);
    for(int k=0;k<6;k++)
    {
      printf("%d ",a[k]);
    }


}

 

数据结构_直接插入排序法

标签:

原文地址:http://www.cnblogs.com/snowwhite/p/4719450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!