折半插入排序(C语言版).doc

折半插入排序(C语言版).doc

ID:58506224

大小:14.50 KB

页数:2页

时间:2020-09-03

折半插入排序(C语言版).doc_第1页
折半插入排序(C语言版).doc_第2页
资源描述:

《折半插入排序(C语言版).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、折半查找插入排序1.实验目的本实验将通过实验实例和程序设计练习,达到如下目的:通过实验掌握二分排序的基本概念,掌握二分排序的基本思想和算法实现。2.实验内容本实验的内容包括:设计一个算法用二分查找实现插入排序的“寻找插入位置”操作。3.实验要求二分查找:在有序表中进行,先确定表的中点位置,再通过比较确定下一步查找哪个半区。以下是我根据严蔚敏教材数据结构(C语言版)自己编写的程序,在程序运行时根据提示随便输入一组数,并以-1结束,程序在TC2.01版本上运行无误,#include

2、#defineMAX100typedefstruct{intelem[MAX];intlength;}SSTable;voidBInsertSort(SSTable*L);intmain(){intm,i=1,a,k;SSTableST;printf("Pleaseinputthosenumbersandpress"-1"toend!");scanf("%d",&a);while(a!=-1){ST.elem[i++]=a;scanf("%d",&a);}ST.length=i-1;BI

3、nsertSort(&ST);printf("Theresultis:");for(m=1;m<=ST.length;m++)printf("%5d",ST.elem[m]);getch();}voidBInsertSort(SSTable*L){inti,low,high,m,j;for(i=2;i<=(L->length);++i){(*L).elem[0]=(*L).elem[i];low=1;high=i-1;while(low<=high){m=(low+high)/2;if((*

4、L).elem[0]<(*L).elem[m])high=m-1;elselow=m+1;}for(j=i-1;j>=high+1;--j)(*L).elem[j+1]=(*L).elem[j];(*L).elem[high+1]=(*L).elem[0];}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。