插入排序算法笔记

原创 2013年12月13日 13:32:48

           插入排序:

                       1、最简单的排序算法。

                       2、在增量排序中有很高的效率,比如已经存在成绩排序,要插入一个新的成绩并且排序。

                       3、不需要额外的存储空间(属于内部排序)。

                       4、时间复杂度为O(n^2)。

           首先,定义数组的形式为:num[MAX + 1]   // MAX是已经定义的常量,num[ 0 ]闲置或者作为哨兵单元

           算法描述:

              

//-------------------------------------
//参数:1.排序数组首地址   2.数组长度
void Insert_Sord(int num[], int max)
{
   for(int i=2; i <= max; ++i)
   {
	   if(num[i] < num[i-1])       //待排序中的第一个元素 < 已排序中的最后一个元素
	   {
		   num[0] = num[i];        //将要插入的元素赋值给哨兵num[0]
		   num[i] = num[i-1];      //已排序数组后移,即长度+1
	  	   for(int j=i-2; num[0]<num[j]; --j)//从已排序中倒数第二个开始比较
		   num[j+1] = num[j];      //已排序中,比哨兵大的元素往后移
	       num[j+1] = num[0];          //将哨兵元素值插入
	   }
   }
}
//=====================================

版权声明:本文为博主原创文章,未经博主允许不得转载。

《算法导论》读书笔记(一)——插入排序与循环不变式

第一次学习《算法导论》,按照读书的顺序将一些心得记录下来 —————————————————————————————— 插入排序的简单C++实现: #include using namespace ...
  • vinson0526
  • vinson0526
  • 2013年09月02日 21:00
  • 1012

插入排序算法之C++实现

插入排序,顾名思义其实现形式是插入. 在整个大小不一的队列中, 第一次: 从一个元素开始,将后面相邻的元素(第二个元素)提取出来,放在一个变量中暂时保存,然后和第二个元素前面的那个元素(第一个元素)做...
  • stzy00
  • stzy00
  • 2015年03月12日 23:31
  • 1505

“深入理解”—插入排序算法

总结下自己对插入排序的理解。 插入排序算法思想:每趟将一个元素,按照其关键字的大小插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。 插入排序包括:直接插入排序、二分插入排序以及希尔排序...
  • qq_25827845
  • qq_25827845
  • 2016年06月21日 17:57
  • 2633

排序算法系列:插入排序算法

直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。...
  • u013761665
  • u013761665
  • 2016年03月24日 08:53
  • 6543

插入排序算法详解及实现

插入排序相对冒泡排序而言是一种较为快捷方便的排序算法。 冒泡排序:http://blog.csdn.net/llzk_/article/details/51547923 插入排序原...
  • LLZK_
  • LLZK_
  • 2016年06月10日 20:30
  • 9223

【算法】插入排序的递归实现

int data[10] = {5,4,3,6,7,8,56,3,234,2}; //输入元素为: data需要排序的数组 start需要排序的数组的起始下标 end需要排序的,无序序列的首元素的下标...
  • chenglibin1988
  • chenglibin1988
  • 2013年05月19日 15:07
  • 4070

排序算法一:直接插入排序

在我的博文《“主宰世界”的10种算法短评》中给出的首个算法就是高效的排序算法。本文将对排序算法做一个全面的梳理,从最简单的“冒泡”到高效的堆排序等。...
  • LG1259156776
  • LG1259156776
  • 2015年09月23日 22:08
  • 41967

插入排序的递归算法(升序)

近来看算法导论有一习题是关于插入排序的,要求用递归实现。正好理解一下递归,在此分享下我的理解,如有纰漏,请多多指教。   已知一无序数组A[1......N],利用插入排序的方法可以将这个数组分...
  • Far__cloud
  • Far__cloud
  • 2016年04月14日 18:24
  • 731

排序算法(五)2-路插入排序

1、 2、 3、 4、 5、 6、 7、 8、
  • wwkaven
  • wwkaven
  • 2014年11月25日 08:07
  • 670

经典排序算法----直接插入排序算法及其改进(稳定)

直接插入,平均情况O(n2),最好情况O(n),最坏情况O(n2),辅助空间O(1),稳定。...
  • qianqin_2014
  • qianqin_2014
  • 2016年04月21日 21:17
  • 646
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:插入排序算法笔记
举报原因:
原因补充:

(最多只允许输入30个字)