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

插入排序练习

时间:2015-07-22 18:58:55      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:插入排序

  插入排序,对于少量元素的排序,它是一个有效的算法。其算法时间复杂度为O(n2),需要一个额外空间。

  插入排序伪码过程命名为INSERTION-SORT,其中参数为

A[1..n],伪码为:

INSERTION-SORT(A)
 for j=2:A.length
  key=A[j]
  i=j-1
  whilei>0 && A[i]>key
  A[i+1]=A[i]
  i=i-1
  A[i+1]=key</span>
C++源码为:

#include<iostream>
using namespace std;
//插入排序练习
int main()
{
	//定义一个无序数组
	int A[]={5,2,4,6,1,3};
	//定义变量i,j,key
	int i=0;
	int j=0;
	int key=0;
	//定义排序数组的长度
	int length=sizeof(A)/sizeof(int);
	//cout<<"length:"<<length<<endl;
	//从第二个数开始进行排序
	for(j=1;j<length;j++)
	{
		//保存要排序的数
		key=A[j];
		//定义循环变量i
		i=j-1;
		//从A[j-1]开始与key(A[j])比较,找到A[j]要插入的位置i
		//i>-1主要是对第一个和第二个数进行排序
		while(i>-1 && A[i]>key)
		{
			//比key大的数依次后移
			A[i+1]=A[i];
			//定义下一个要比较数的索引
			i=i-1;
		}
		//将key(A[j])插入到i+1位置上
		//由于while循环退出时,A[i]是小于key的,所以key应插入到i+1的位置上
		A[i+1]=key;
	}
	for(int k=0;k<length;k++)
	{
		cout<<A[k]<<endl;
	}
	system("pause");
	return 0;
}



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

插入排序练习

标签:插入排序

原文地址:http://blog.csdn.net/quincuntial/article/details/47005417

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