数据结构 直接插入排序
韩灿吧
全部回复
仅看楼主
level 1
影墨者 楼主
基本排序算法之一,需要掌握,看帖请回贴。
#include<stdio.h>
#define MAXSIZE 5
typedef struct{
int key;
}ElemType;
typedef struct{
ElemType data[MAXSIZE+1];
int length;
}SL;
void InsertSort(SL *p)
{int i,j;
 for(i=2;i<=p->length;i++)
    if(p->data[i].key<p->data[i-1].key)
       {p->data[0]=p->data[i];
        for(j=i-1; p->data[0].key<p->data[j].key;j--)
            p->data[j+1]=p->data[j];
        p->data[j+1]=p->data[0];
        }
}
void main()
{SL a;int i;
 a.length=0;
 for(i=1;i<MAXSIZE+1;i++)
    {scanf("%d",&a.data[i].key);
     a.length++;
     }
 InsertSort(&a);
 for(i=1;i<=a.length;i++)
    printf("%3d",a.data[i].key);
 getch();
}
2009年04月08日 12点04分 1
1