C语言程序—直接插入排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#define MAX 50

typedef struct

{ int key;

char data;

} datatype;

int getsort(datatype x[] );

void insertsort(datatype x[],int n);

void print(datatype x[],int n);

void main()

{ datatype x[MAX];

int n,sel; /*sel 输入选择,n 排序记录的长度*/

printf("请输入你的选择:1---开始其它选择为退出\nyour choice =");

scanf("%d",&sel);

while(sel==1)

{ printf("\n请输入关键字序列,以-1结束输入:");

n=getsort(x);

printf("\n排序前的结果为:\n");

print(x,n);

printf("\n");

printf("排序的过程为:\n");

insertsort(x,n);

printf("\n直接插入排序后的结果为:\n");

print(x,n);

printf("\n");

printf("请输入你的选择:1---开始其它选择为退出\nyour choice =");

scanf("%d",&sel); } }

/*输入记录的关键字*/

int getsort(datatype x[] )

{ int i=0;

scanf("%d",&x[i].key);

while(x[i].key!=-1)

{ i++;

scanf("%d",&x[i].key); }

return i; }

/*直接插入排序*/

void insertsort(datatype x[],int n)

{ int i,j;

datatype temp; /*中间变量*/

for(i=1;i

{ temp=x[i];

j=i-1;

while(j>-1 && temp.key

{ x[j+1]=x[j];

j--; }

x[j+1]=temp;

print(x,n);

printf("\n"); } } void print(datatype x[],int n) {

int i;

for(i=0;i

printf("%d\t",x[i].key); }

相关文档
最新文档