插入排序算法笔记

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012805027/article/details/17300633

排序算法(JAVA实现):冒泡排序法和插入排序法

为了方便扩展,先引入一个抽象的基础类: package com.andyidea.algorithms; /** * 排序抽象基础类 * @author Andy.Chen * * @pa...
  • cjjky
  • cjjky
  • 2011-11-20 22:41:44
  • 5377

算法:链表的插入排序

LeetCode OJ 编程题:Sort a linked list using insertion sort.
  • zaizai09
  • zaizai09
  • 2014-04-10 10:44:58
  • 1030

算法----插入排序(insert sort)

插入排序就是每次选取一个元素插入到已经排序的子数组中,如此循环,直到所有的元素都完成排序。 算法实现: void sort::insert_sort(int* a, const int n) { f...
  • shaya118
  • shaya118
  • 2014-11-12 22:40:59
  • 1552

插入排序的递归算法

一、算法思想 由插入排序的基本思想可以得到它的递归算法: 确定前面的数是已经排好序了的,从当前数开始,依次一个个的插入到前面的数中。   二、代码 //插入排序的递归算法 void ...
  • zgljl2012
  • zgljl2012
  • 2014-03-16 11:30:31
  • 1437

python实现排序算法三:插入排序

插入排序基本思想:假设一个无序数组A,则对于只有一个元素A[0]的子数组C来讲,其是有序的,然后将A[1]插入到C中,则就是将A[1]与A[0]进行比较,如果A[1]比A[0]小,则交换两者的顺序,这...
  • xqn2017
  • xqn2017
  • 2017-03-25 16:41:24
  • 245

插入排序伪代码及实现

方法一 //插入排序实现 #include using namespace std; void insert_sort(int A[],unsigned int first,unsigned ...
  • xiaofei2010
  • xiaofei2010
  • 2012-12-06 15:00:22
  • 3967

【数据结构----笔记4】插入排序算法之【折半插入排序算法】

/*__________________________________________________________________________________________________...
  • qq_32211827
  • qq_32211827
  • 2017-09-08 21:58:23
  • 120

插入排序算法解析与实例

1、什么是插入排序           插入排序对于少量元素的排序是一个有效的算法。举个栗子,插入排序的工作方式像对打扑克牌时对手中的扑克牌进行排序,开始时,我们的左手为空并且桌子上的牌面向下。然后...
  • u012129259
  • u012129259
  • 2017-03-08 10:27:48
  • 638

插入排序算法详解(C++实现)

插入排序   输入:n个数(a1,a2,...,an)。 输出:输入序列的一个排列(a1',a2',...,an'),使得a1'到an'为有序序列。 待排序的数称为关键字key。   插入排序与平时...
  • heuguangxu
  • heuguangxu
  • 2017-01-19 23:20:25
  • 314

C#插入排序算法

插入排序分为直接插入排序和希尔排序      每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子列表当中的适当位置,直到全部记录插入完成为止。     对直接插入排序我的理解就是:先将第一...
  • lwk2011
  • lwk2011
  • 2010-05-28 20:38:00
  • 5160
收藏助手
不良信息举报
您举报文章:插入排序算法笔记
举报原因:
原因补充:

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