一、插入排序
类似玩纸牌时整理手中的纸牌,基本思想:依次将待排序序列中的每个记录插入到一个已经排好序的序列中直到全部记录都排好序。分为简单插入排序和希尔排序。
简单插入排序
void InsertSort(int r[],int n)
{
for(i=2;i<=n;i++)
{
r[0] = r[i]
for(j=i-1;r[0]<r[j];j--)
r[j+1] = r[j];
r[j+1] = r[0];
}
}
希尔排序
void ShellSort(int r[],int n)
{
for(d=n/2;d>=1;d=d/2)
{
for(i=d+1;i<=n;i++)
{
r[0] = r[i]
for(j=i-d;j>0&&r[0]<r[i];j=j-d)
{
r[j+d] = r[j];
}
r[j+d] = r[0];
}
}
}