标签:插入排序
插入排序,对于少量元素的排序,它是一个有效的算法。其算法时间复杂度为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