衡阳师范学院计算机科学与技术课程设计08级1班邓建华.doc

衡阳师范学院计算机科学与技术课程设计08级1班邓建华.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
衡阳师范学院计算机科学与技术课程设计08级1班邓建华

衡阳师范学院 08级1班 邓建华 2011年06.19 #define CPP C++ //比较 #define MPP M++ //移动 #define MP2 M+=2 #define MP3 M+=3 #includeiostream.h #include string.h #includestdlib.h #include iomanip.h #include math.h #includetime.h //存储结构(数组) const int maxsize=1000; //排序表容量,假设为100.. typedef int datatype; //假设存储元素是整形类型 typedef struct { datatype key; //关键字域 }rectype; //记录类型 typedef rectype list[maxsize+1]; //排序表类型,0号单元不用; __int64 C,M; //比较和移动次数 void checkup(list R,int n) { //检验升序排序结果 int i; for(i=2;i=n;i++) if(R[i].keyR[i-1].key) {coutError!\n;return;} coutCorrect! endl; } void checkdown(list R,int n) { //检验降序排序结果 int i; for(i=2;i=n;i++) if(R[i].keyR[i-1].key) {coutError!\n;return;} coutCorrect! endl; } void disp(list R,int n) { //显示数组中的数据 int i; for(i=1;i=n;i++) { coutsetw(8)R[i].key; if(i%10==0) coutendl; } coutendl; } int random1(int num) {return rand();} //0~RAND_MAX=32767 int random2(int num) {//素数模乘同余法,0~M int A=16807; // 16807764261123,630360016 48271? int M=2147483647; //有符号4字节最大素数,2^31-1 int Q=M/A; int R=M%A; static int x=1; //seed(set to 1) int x1; x1=A*(x%Q)-R*(x/Q); if(x1=0) x=x1; else x=x1+M; return x; } //直接插入排序(有监视哨) void InsertSort(list R,int n){ int i,j; for(i=2;i=n;i++) { //依次插入R[2],R[],R[]... ....R[] if(CPP,R[i].key=R[i-1].key) continue; //R[i]插入时刚好是升序序列无需移动 MPP,R[0]=R[i]; //R[0]作为监视哨 j=i-1; do{ MPP,R[j+1]=R[j]; j--; }while(CPP,R[0].keyR[j].key); MPP,R[j+1]=R[0]; } } //希尔排序(无设置监视哨) void ShellInsert(list R,int n,int h){ //一趟插入排序,h为本趟增量 int i,j,k; for(i=1;i=h;i++) { //i为组号 for(j=i+h;j=n;j+=h){ //每组从第2个记录开始插入 if(CPP,R[j].key=R[j-h].key) continue; //R[j]大于有序区最后一个记录,则不需要插入 MPP,R[0]=R[j]; k=j-h; do{ //查找正确的插入位置 MPP,R[k+h]=R[k]; k=k-h; //后移记录,继续向前搜索 }while(CPP,k0 R[0].keyR[k].key); MPP,R[k+h]=R[0]; } } } //希尔排序(调用若干趟插入排序) void ShellSort(list R,int n,int d[],int t) {//d[]为增量序列,t为增量序列长度 int i; for(i=0;it;i++) //各趟插入排序 ShellInsert(R,n,d[i]); } /* 交换排序 */ //上升冒泡排序 void BubbleSort(list R,int n) { int i,j,flag; for(i=1;in-1;i++){ //做 n-1 趟扫描 flag=0; //直末交换标志 for(j=n

文档评论(0)

jiaoyuguanliji + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档