插入排序是一直最直接的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,知道全部记录查完为止。其时间复杂度为
O(n^2),空间复杂度为O(1).具有稳定性
#include<iostream>
using namespace std;
void InsertSort(int *data,int len)
{
if(data==NULL||len<=0)
return;
for(int i=1;i<len;i++)
{
int t=data[i];
int j=i-1;
while(j>=0&&data[j]>t)
{
data[j+1]=data[j];
j--;
}
data[j+1]=t;
}
}
void main()
{
int data[]={49,38,65,97,76,13,27,49,55,4};
int len=sizeof(data)/sizeof(int);
InsertSort(data,len);
for(int i=0;i<len;i++)
cout<<data[i]<<" ";
cout<<endl;
}