#include <stdio.h>
#define KEYTYPE int
#define MAXSIZE 100
typedef struct
{
KEYTYPE key;
}SSELEMENT;
typedef struct
{
SSELEMENT r[MAXSIZE];
int length;
}Sqlist;
void InsertSort(Sqlist &L)
{
int i,j;
for(i=2;i<=L.length;++i)
if(L.r[i].key<L.r[i-1].key)
{
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;L.r[0].key<L.r[j].key;--j)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
int main()
{
int n;
Sqlist L;
printf("请输入元素的个数:\n");
scanf("%d",&n);
L.length=n;
printf("请输入元素:\n");
for(int i=1;i<=L.length;i++)
scanf("%d",&L.r[i].key);
printf("输出排序前的元素序列:\n");
for(i=1;i<=L.length;i++)
printf("%d ",L.r[i].key);
printf("\n");
InsertSort(L);
printf("输出排序后的元素序列:\n");
for(i=1;i<=L.length;i++)
printf("%d ",L.r[i].key);
printf("\n");
return 0;
}
#define KEYTYPE int
#define MAXSIZE 100
typedef struct
{
KEYTYPE key;
}SSELEMENT;
typedef struct
{
SSELEMENT r[MAXSIZE];
int length;
}Sqlist;
void InsertSort(Sqlist &L)
{
int i,j;
for(i=2;i<=L.length;++i)
if(L.r[i].key<L.r[i-1].key)
{
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;L.r[0].key<L.r[j].key;--j)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
int main()
{
int n;
Sqlist L;
printf("请输入元素的个数:\n");
scanf("%d",&n);
L.length=n;
printf("请输入元素:\n");
for(int i=1;i<=L.length;i++)
scanf("%d",&L.r[i].key);
printf("输出排序前的元素序列:\n");
for(i=1;i<=L.length;i++)
printf("%d ",L.r[i].key);
printf("\n");
InsertSort(L);
printf("输出排序后的元素序列:\n");
for(i=1;i<=L.length;i++)
printf("%d ",L.r[i].key);
printf("\n");
return 0;
}