C数据结构-内部排序

作者在 2006-12-10 23:28:00 发布以下内容

作业:以关键字序列{48,62,35,77,55,14,35,98}为例说明完成直接插入排序的算法思想及排序过程,并说明此算法是一种稳定的算法。编程实现此排序(用email上交)。

/*------使用直接插入排序法实现一组数据的排序------*/
#include <stdlib.h>
#include <stdio.h>
#define MAX 8  /*最大数组容量*/


typedef struct
{
 int r[MAX+1];  /*r[0]为工作单元*/
 int length;
}recordlist;

/*输入一组数据*/
void input(recordlist *l)
{
 int i;
 l->length=MAX;
 printf("\nPlease input numbers:\n");
 for(i=1;i<=MAX;i++)
 scanf("%d",&l->r);
 printf("\n");
 printf("\nThe numbers before taxis:");
    for(i=1;i<MAX+1;i++)
    printf("%d ",l->r);
}

/*直接插入排序*/
void inssort(recordlist *l)
{
 int i,j;
 l->length=MAX;
 for(i=2;i<MAX+1;i++)
 {
  l->r[0]=l->r;j=i-1;
  while(l->r[0]<l->r[j])
  {
   l->r[j+1]=l->r[j];j=j-1;
  }
 l->r[j+1]=l->r[0];
    }
    printf("\n");
    printf("\nThe numbers after taxis:");
    for(i=1;i<MAX+1;i++)
    printf("%d ",l->r);
}

void main()
{
 recordlist *l;
 input(&l);/*输入一组数据*/
 inssort(&l);/*将输入的那组数据进行直接插入排序*/
 printf("\n");
 exit(0);/*终止程序*/ 
}

 

           

C | 阅读 2831 次
文章评论,共0条
游客请输入验证码