直接插入排序的过程是:
在插入第i个记录时,R1,R2,…,Ri-1已经排好序,将第i个记录的排序码 ki依次和R1,R2,…,Ri-1的排序码逐个进行比较,找到适当的位置。
直接插入排序的时间复杂度为 O(n2)。
C/C++代码实现直接插入排序
#include<iostream>
using namespace std;
int main()
{
int a[]={98,76,109,34,67,190,80,12,14,89,1};
int k=sizeof(a)/sizeof(a[0]);
int i,j;
for(i=1;i<k;i++)//循环从第2个元素开始
{
if(a[i]<a[i-1])
{
int temp=a[i];
for(j=i-1;j>=0 && a[j]>temp;j--)
{
a[j+1]=a[j];
}
a[j+1]=temp;//此处就是a[j+1]=temp;
}
}
for(int f=0;f<k;f++)
{
cout<<a[f]<<" ";
}
return 0;
}