//插入排序之直接插入排序
#include <iostream>
using namespace std;
int R[100];
int n;//所需排列的序列元素的个数
void main(int R[],int n)
{
int i,j;
int tmp;
for(i=1;i<n;i++)//从第二个元素开始
{
if(R[i]<R[i-1])//提高效率
{
tmp=R[i];
j=i-1;
while( j>=0&&R[j]>tmp)
{
R[j+1]=R[j];
j--;
}
R[j+1]=tmp;
}
}
}
//插入排序之希尔插入排序
#include <iostream>
using namespace std;
int R[100];
int n;//所需排列的序列元素的个数
void main(int R[],int n)
{
int i,j;
int tmp;
int d=n/2;
while(d>0)
{
for(i=d;i<n;i++)//从第二个元素开始且d组“同步”进行
{
if(R[i]<R[i-d])//提高效率
{
tmp=R[i];
j=i-d;
while( j>=0&&R[j]>tmp)
{
R[j+d]=R[j];
j-=d;
}
R[j+d]=tmp;
}
}
d=d/2;
}
}