数据结构希尔程序实验 .docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构希尔程序实验 .doc

实验八 排序算法实现实验 1. 实验目的 1)2. 实验内容 用C++描述并实现希尔排序查找算法及其主要操作,其逻辑结构 完成如下程序: 希尔排序 #include iostream using namespace std; typedef int KeyType; // 关键字的类型 const int MAXSIZE=100; // 数组的容量 struct ElemType //学生的记录信息 { KeyType key ; //学号 } ; class SqHash { public: ElemType *ht; //表数组 int length,count,start; //表大小(长度) public: SqHash( int n1,int p1); ~SqHash(){delete []ht; length=0;}; int sort1(); void sort_interval(int start,int increment); void creat_hash(); void PrintOut(); }; //------------------------------------------------------------- SqHash::SqHash(int n1,int p1) { int num=0; length=n1; ht=new ElemType[length]; for(int i=0;ilength;i++)ht[i].key=-1; } void SqHash::creat_hash() { int i=0,num,K; cout\n 请逐一输入各个学号(关键字值)(-1结束):; cinK; while(K!=-1numlength) { ht[i].key=K; cout\n 插入成功! ; num++; cout\n 请逐一输入各个学号(关键字值)(-1结束):; cinK; i++; count=i; } } //查询某关键字的记录 int SqHash:: sort1( ) { int increment; increment=count; do{increment=increment/3+1; for(start=0;startincrement;start++) sort_interval(start,increment); }while(increment1); return 0; } void SqHash::sort_interval(int start,int increment) {int m=start; for(int p=m+increment;pcount;p=p+increment) if(ht[p-increment].keyht[p].key) {int temp=ht[p-increment].key; ht[p-increment].key=ht[p].key; ht[p].key=temp; } } void SqHash::PrintOut() { int i; for (i=0;ilength; i++) { if(ht[i].key!=-1) cout\n i=i 学号:ht[i].key; } } int main() { int p0,n0; cout\n 请输入n值(n值应是记录总数的.3-1.5倍); cinn0; cout\n 请输入P值(应是不大于n 的大质数):; cinp0; SqHash ha(n0,p0); int k; do { cout\n\n\n; cout\n 1. 建立表 ; cout\n 2. 对学生记录排序; cout\n 3. 输出表; cout\n 4. 结束; cout\n=======================================; cout\n 输入您的选择(1,2,3,4):; cink; switch(k) { case 1:{ ha.creat_hash(); } break; case 2:{ cout\n 排序学生数据:; int i=ha.sort1(); if(i==-1) cout\n排序不成功endl ; else cout排序成功!; } break; case 3:{ ha.PrintOut(); } bre

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档