《数据结构-----排序(归并排序,插入排序) C代码》由会员分享,可在线阅读,更多相关《数据结构-----排序(归并排序,插入排序) C代码(4页珍藏版)》请在金锄头文库上搜索。
1、/11.6 排序/归并排序的实现 /已知关键字序列为1,8,6,4,10,5,3,2,22, 请对此序列进行归并排序,并输出结果。/*#includeint num=0;void print_data(int data,int first,int last)int i=0;for(i=0;i#includechar xx5080;int maxline=0;void readtxt(void); /读文件函数声明void selectsort(void); /排序函数声明void writetxt(void); /写文件函数声明void main()readtxt();selectsort()
2、;writetxt();void readtxt(void)FILE *fp;int i=0;char *p;fp=fopen(in.txt,r); /用只读方式读入文件while(fgets(xxi,80,fp)!=NULL) /读入一行p=strchr(xxi,n); /将各行中字符n代之以 NULLif(p)xxip-xxi=0;i+;maxline=i;fclose(fp);void writetxt(void)FILE *fp;int i;fp=fopen(out.txt,w);for(i=0;imaxline;i+)fprintf(fp,%sn,xxi); /将排序后的数据写入 out.txtfclose(fp);void selectsort(void) /直接插入排序算法int n,i,j,len;char k;for(n=0;nmaxline;n+)len=strlen(xxn); /确定各行长度for(i=0;ilen;i+) /各行直接插入排序k=xxni;j=i-1;while(kxxnj) /由后向前查找插入位置if(j0)break;xxnj+1=xxnj;j-; xxnj+1=k; /将当前最小值插入适当位置