ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:18.53KB ,
资源ID:5767957      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5767957.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模板Word文件下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

模板Word文件下载.docx

1、0: if(last=2) next=zs0(zlast*width+slast)|(zlast*width+slast-znext*width+snext)%2=0) last=3-next-last;from %d to %dn,next+1,last+1); snext=snext-1; slast=slast+1; /* move from next to last peg */ zlast*width+slast=znext*width+snext+1;冒泡法改进/* 冒泡法是数据排序的一种基本算法,它的基本方法是:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最小元素排

2、在最后(如从大到小排序),下一次循环是将其他的数进行类似操作?如将N 个数按从大到小排序,Turbo C语言程序函数 如下: */void sort(int a,int n); main() int a100,i ,j ,n ; /*输入数组元素的个数及各元素的值*/ scanf(%d,&n); for(i =0;i =0; i-) for(j =0;j i ; j+) if(ajaj +1) t =aj; aj=aj +1; aj +1=t ; /*N 个元素需比较N *(N -1)/2次,效率较差?其实,可根据每一次循环比较中的情 况改进之? 改进一:若某次循环中没有数据交换过,则可认为数

3、据已经有序了,不必再进行循环了,可在程序中设一变量Flag 用来标识有无数据交换?sort(int a,int n) int i ,j ,t ,flag ; for (i =n -2;0; flag =0; for(j =0; if(aj0) k=0;j +) if(aj t =aj; aj=aj +1; aj +1=t ; k=j ; flag =k; /*此处不填flag = flag -1;各种排序#includestruct node int key;r20;struct rnode int point; void print(struct node a20,int n); int c

4、reat(); void shell(struct node a20,int n); int hoare(struct node a20,int l,int h); void quick1(struct node a20,int n); void quick2(struct node a20,int l,int h); void heap(struct node a20,int i,int m); void heapsort(struct node a20,int n); void merges(struct node a20,struct node a220,int h1,int mid,i

5、nt h2); void mergepass(struct node a20,struct node a220,int l,int n); void mergesort(struct node a20,int n); int yx(int m,int i); int radixsort(struct rnode a20,int n); int num,l,h,c; struct rnode s20; c=1; while(c!=0) printf( 主菜单 n 1 输入关键字,以-9999表示结束。n 2 希尔排序 n 3 非递归的快速排序 n 4 递归的快速排序 n 5 堆排序 n 6 归并

6、排序 n 7 基数排序 n 输入选择 (1-7,0表示结束): scanf(c); switch(c) case 1:num=creat();print(r,num);break; case 2:shell(r,num); case 3:quick1(r,num); case 4:l=0;h=num-1;quick2(r,l,h); printf(output quick2sort result: print(r,num); case 5:heapsort(r,num); case 6:mergesort(r,num); case 7:radixsort(s,num); /main endvo

7、id print(struct node a20,int n) int i; for(i=0;i=1;i-) ai.key=ai-1.key; k=n/2; while(k=1) for(i=k+1;=n; a0.key=ai.key; j=i-k; while(aj.keya0.key)&(j=0) aj+k.key=aj.key; j=j-k; aj+k=a0; k=k/2; ai.key=ai+1.key;输出希尔排序的结果:/shell end/快速排序/int hoare(struct node a20,int l,int h)/分区处理函数 int i,j; struct node

8、 x; i=l; j=h; x.key=ai.key; do while(i=x.key) j-; if(ij) ai.key=aj.key; i+;(ai.key aj.key=ai.key; while(ij); ai.key=x.key; return(i);/hoare endvoid quick1(struct node a20,int n) int i,l,h,tag,top; int s202; l=0;h=n-1;tag=1;top=0; while(lh) i=hoare(a,l,h); top+; stop0=i+1; stop1=h; h=h-1; if(top=0) t

9、ag=0; else l=stop0; h=stop1; top-; while(tag=1);输出非递归快速排序结果:/quick endvoid quick2(struct node a20,int l,int h)/递归的快速排序 if(l i=hoare(a,l,h); quick2(a,l,i-1); quick2(a,i+1,h);/quick2 end/快速排序结束/堆排序函数/void heap(struct node a20,int i,int m)/调整堆的函数 int j; j=2*i; while(j=m) if(jaj+1.key) j+; if(aj.key=2;v

10、-),a1.key); x.key=a1.key; a1.key=av.key; av.key=x.key; heap(a,1,v-1);/heapsort end/堆排序函数结束/归并函数/void merges(struct node a20,struct node a220,int h1,int mid,int h2)/归并排序的核心算法 i=h1;j=mid+1;k=h1-1; while(i=mid)&(j=h2) k=k+1; if(ai.key=aj.key) a2k.key=ai.key; a2k.key=aj.key; j+; while(i=2*l) h1=i; mid=h

11、1+l-1; h2=i+2*l-1; merges(a,a2,h1,mid,h2); i=i+2*l; if(n-i)=l) for(j=i;jj+) a2j.key=aj.key; h2=n-1;/mergepass endvoid mergesort(struct node a20,int n) int l; struct node a220; l=1; while(ln) mergepass(a,a2,l,n); l=2*l; mergepass(a2,a,l,n);输出归并排序的结果:/mergesort end/归并函数结束/基数排序/int yx(int m,int i)/分离关键

12、字倒数第i位有效数字的算法 int x; switch(i) case 1:x=m%10; case 2:x=(m%100)/10; case 3:x=(m%1000)/100; case 4:x=(m%10000)/1000; return(x);/yx endint radixsort(struct rnode a20,int n) int f11,e11,i,j,k,l,p,d,t; for(i=1; ai.key=ri-1.key; ai.point=i+1; an.point=0; p=1;输出关键字有效位数 dnd);输出基数排序的结果:=d; for(j=0;=10; fj=0;

13、 ej=0; while(p! k=yx(ap.key,i); if(fk=0) fk=p; ek=p; else l=ek; al.point=p; p=ap.point; j=0; while(fj=0) p=fj;t=ej; while(j10) while(j for(r=1;r digit+; datar+1+=datar/10; datar=datar%10;%d!=,i); for(k=digit;kk-),datak); getch();/*最大公约数,最小公倍数*/int hcf(int a,int b) int r=0; while(b! r=a%b; a=b; b=r; return(a); lcd(int u,int v,int h) return(u*v/h); int u,v,h,l;%d%du,&v); h=hcf(u,v);H.C.F=%dn,h); l=lcd(u,v,h);L.C.D=%dn,l);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2