#include <iostream>using namespace std;#define  MAXSIZE  20                              typedef struct{    int key;    char *otherinfo;}ElemType;                       typedef struct{    ElemType *r;                                         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];                            }                                        }                                                void Create_Sq(SqList &L){    int i,n;    cout<<"数据个数:";    cin>>n;                                            cout<<"待排序的数据:";    for(i=1;i<=n;i++){        cin>>L.r[i].key;        L.length++;    }}void show(SqList L){    int i;    for(i=1;i<=L.length;i++)        cout<<L.r[i].key<<" ";}int main(){    SqList L;    L.r=new ElemType[MAXSIZE+1];    L.length=0;    Create_Sq(L);    InsertSort(L);    cout<<"间接插入排序:";    show(L);}