- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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~Mint A=16807; // 16807764261123,630360016 48271?int M=2147483647; //有符号4字节最大素数,2^31-1int 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
您可能关注的文档
最近下载
- 20241123家居制造业集团战略规划和运营管控规划方案.pptx VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人笔试备考题库及答案解析.docx VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人笔试模拟试题及答案解析.docx VIP
- 警犬技术岗位面试问题.docx VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人考试备考题库及答案解析.docx VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人考试练习题库及答案解析.docx VIP
- 绿色建筑及节能材料技术.ppt VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人考试备考试题及答案解析.docx VIP
- 版小学二年级道德与法治上册第11课《大家排好队》名师课堂实录(第一.pdf VIP
- 2025广东广州市越秀区大东街道办事处经济发展办招聘辅助人员(统计员岗)1人考试练习试题及答案解析.docx VIP
文档评论(0)