一、原理:将无序序列中的各个元素以次插入到有序的线性表中
二、实现方法:
假设前面已经m-1个有序元素,现在将第m个元素s[m]插入到前面有序的序列中,则用s[m]与第m-1及m-1之前的元素以次比较,当s[m-1]大于s[m]时,s[m-1]后移,当出现第k个元素(0<k<=m-1)不大于这个s[m]元素时,将s[m]插入空出的位置。
三、代码如下:
void InsertSort(int s[],int length)
{
if (NULL == s || 0 == length || 1 == length)
{
return;
}
int j;
int temp;
for (int i=1; i<length; i++)
{
j = i;
temp = s[j];
while((s[j-1]>temp) && (j>0))
{
s[j] = s[j-1];
j--;
}
s[j] = temp;
}
}