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
#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();
}