插入排序算法笔记

原创 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];          //将哨兵元素值插入
	   }
   }
}
//=====================================

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

相关文章推荐

算法学习笔记之插入排序算法

接下我们介绍下一种排序算法:插入排序插入排序算法通过比较和插入来实现排序,其排序流程如下: 1)首先对数组前两个数据进行从小到大排序 2)接下来将第3个数据与排好序的两个数据进行比较,将第3个数据...

插入排序算法学习——算法导论学习笔记

今天第一次写算法的笔记,从今天开始正式步入学习算法的行列。白天的时间保质保量的把工作完成,然后就是开始学习unix环境高级编程,还有就是算法了。学习要思考,要总结,才能有收获。回归正题。 插入排序 ...

应用于实时性的插入排序算法

  • 2017年09月07日 14:57
  • 174KB
  • 下载

插入排序算法

  • 2014年10月14日 14:47
  • 421B
  • 下载

冒泡、选择、插入排序算法小总结

冒泡排序:在排序的过程中总是小的数往前放,大数往后放,相当于气泡往上升(升序排列),所以称为冒泡排序。 思路:如果有 n 个数,则需要 n-1 趟比较(剩下一个数时不需要比较),在第一趟中进行n-1...

java编写的插入排序算法

  • 2013年10月25日 17:40
  • 159KB
  • 下载

插入排序算法(动态数组实现)

  • 2016年04月04日 21:57
  • 165KB
  • 下载

插入排序算法

插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用i...

插入排序算法

  • 2015年03月25日 11:01
  • 1KB
  • 下载

插入排序算法java代码

  • 2012年08月11日 23:29
  • 473B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:插入排序算法笔记
举报原因:
原因补充:

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