#include<stdio.h>
#include<stdlib.h>
typedef int KeyType;
typedef struct{
KeyType key;
int length;
}RecType;
void CreateList(RecType *&R,KeyType r[],int n)//建立线性表
{
int i=0,k=0;
R=(RecType *)malloc(sizeof(RecType));
while(i<n){
R[i].key=r[i];
k++;i++;
}
R->length=k;
}
void DisList(RecType *R)//输出线性表
{
for(int i=0;ilength;i++)
printf("%2d",R[i].key);
printf("\n");
}
void InsertSort(RecType R[],int n)//顺序排序
{ int i,j;
RecType tmp;
for(i=1;i<n;i++)
{ if(R[i].key<R[i-1].key)
{ tmp=R[i];
j=i-1;
do
{ R[j+1]=R[j];
j--;
} while (j>=0 && R[j].key>tmp.key);
R[j+1]=tmp;
}
}
}
int main(void)
{
RecType *R;
KeyType r[]={6,5,4,3,2,1};
printf("输出原序列:\n");
CreateList(R,r,6);//建立顺序表
DisList(R);//输出线性表
printf("排序后:\n");
InsertSort(R,6);
DisList(R);//输出线性表
return 0;
}