版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汉诺塔#include<stdio.h>inthanoi(intn)(if(n==l)return1;elsereturnhanoi(n-l)*2+1;}voidmove(intn,chara,charb,charc)(if(n==l)printf(”从外c移动至ij%c\n",a,c);else(move(n-l,a,c,b);printf(”从阮移动到%c\nM,a,c);move(n-l,b.a.c);}}intmainO(intn;chara='A',b=B,c='C;while(scanf(,,%d",&n)!=EOF)(move(n,a,b,c);printf(”总移动%d步\n",hanoi(n));}return0;}阶乘#include<stdio.h>intjie(intn)(if(n==0||n==l)return1;elsereturnjie(n-l)*n;}intmain()(intn;while(scanf(,,%d",&n)!=EOF)printf(明d!=%d\n",n,jie(n));return0;合并算法#include<stdio.h>constintMAX=10;voidMerge(intaQ,intstart,intmid,intend)(intb[MAX],c[MAX];intnl=mid-start+1,n2=end-mid;for(inti=0;i<nl;i++)(b[i]=a[start+i];}for(inti=0;i<n2;i++)(c[i]=a[mid+1+i];}inti=0,j=0;intk=start;while(i<nl&&j<n2)(if(b[i]<cD])a[k++]=b[i++];elsea[k++]=c[j++];}while(i<nl)(a[k++]=bp++];}while(j<n2)(a[k++]=c[j++];}}voidMergesort(intA[],intstart,intend)(intmid;if(start<end)(mid=(start+end)/2;Mergesort(A,start,mid);Mergesort(A,mid+1,end);Merge(A,start,mid,end);}}〃自底向上voidMergesort2(intAQ,intn)(inti,astart,aend,bstart,bend,k;inttmp[MAX]:for(i=l;i<n;i=i*2)(for(a_start=0;a_start<n-i;a.start=b_end){bstart=astart+i;a.encl=a_start+i;b_end=a_end+i;k=0;while(a_start<a.end&&b_start<b_end)(if(A[a_start]<A[b_start])tmp[k++]=A[a_start++];elsetmp[k++]=A[b_start++];while(a_start<a_end)A[--b_start]=A[--a_end];while(k>0)A[--b_start]=tmp[--k];}}}}intmain0(inta[MAX]二{1,8,7,9,543,6,2,0};Mergesort(a,0,9);printfC合并算法递归方法:”);for(inti=0;i<MAX;i++)printf⑶d",a[i]);printfC'Xn");intb[MAX]二{1,8,7,9,5,4,3,620};Mergesort2(b,10);P「intf(”合并算法非递归方法:”);for(inti=0;i<MAX;i++)printf⑶d",a[i]);printfC'Xn");return0;}求最大元素#include<stdio.h>constintMAX=10;intFiMax(intaD)(intb[MAX],c[MAX];for(intj=0;i<5;i++)(b[i]=a[i];c[i]=a[5+i];}intM_b=b[0],M_c=c[5];for(inti=l;i<5;i++)(if(M_b<b[i])M_b=b[i];if(M_c<c[i])M_c=cp];}returnM_b>M_c?M_b:M_c;}intmainO(intA[MAX]=(1,8,7,9,5,4,3,6,2,0);printfC分治算法求最最大元素:%d\n",FiMax(A));return0;}快速排序#include<stdio.h>#includeMQuickSort.hMconstintMAX=10;typedefintelemType;intmainO(elemTypea[MAX];printf("inputa[]:");for(inti=0;i<MAX;i++)(scanf(”%d”,&a[i]);}quicksorts,0,MAX-1);printf("outputa[]:”);for(inti=0;i<MAX;i++)printfC*%cl",a[i]);printf("\n");return0;}typedefintelemType;voidswap(int&a,int&b){inttemp=a;a=b;b=temp;voidquickSort(elemTypeaQ,intI,intr)(inti.j;elemTypep;if(l>r)return;P=a[I];i=1;j=cwhile(i!=j)(〃一定要先找右边while(aO]p&&ivj)j--;while(ap]<=p&&i<j)i++;if(i<Dswap(a[i],aD]);}swap(a[l],a[i]);quickSort(a:I,i-1);quickSort(a:i+1,r);}快速排序#include<stdio.h>#includeMQuickSelect.hM#includeMQuickSelect_non-recursive.hMconstintMAX=9:typedefintelemType;intmainO(elemTypeA[MAX+1];intk;printf("input:");for(inti=0;i<MAX;i"){〃输入无序数组scanf(”%d”,&A[i]);}printf("inputK:n):scanf(明d”,&k);〃求k小的数printf("recursiveoutput:Wd\n,l,quickSelect(AO,MAX,k));〃递归输出第k小数printf(Mono-recursiveoutput:%d\nll,quickSelect_nonRec(A;0,MAX,k));return0;}——递归typedefintelemType;voidswap(elemType&a,elemType&b){elemTypetmp=a:a=b;b=tmp;}intlomutoPartitionl(elemTypeaQJntIjntr)(inti.j;elemTypep;P=aO];i=1;j=Cwhile(i!=j)(while(aO]>=p&&i<j)j--;while(ap]<=p&&i<j)i++;if(i<Dswap(a[i],afl]):}swap(a[l],a[i]);returni;}intlomutoPartition(elemTypea[],intI,intr)(elemTypep=ap];ints=I;for(inti=l+l;i<r;i++)(if(a[i]<p){S++;swap(a[s],a[i]);))swap(a[l],a[s]);returns;elemTypequickSelect(elemTypeaQjntIk)(ints=lomutoPartition(a,l,r);if(S二二|+k-l){returna[s];)elseif(s>l+k-l)(quickSelect(aJ,s,k);)else{quickSelect(a,s+l,r,k-(s+l-l));}}----非递归typedefintemelType;constintinfinite=0x7fffffff:////voidswap(emelType&a,emelType&b)(//emelTypetmp=a://a=b;//b=tmp;//}intpartition(emelTypea[],intIjntr)(emelTypep=ap];ints=I;for(inti=1+1;i<r;i++)(if(p>a[i]){S++;swap(a[s],a[i]);}}swap(a[s],a[l]);returns;}emelTypequickSelect.nonRec(emelTypeaDjntIjntrjntk)(a[r]=infinite;while(l<=r)(intj=partition(all,r);if(j<k-l)(I二j+1;}elseif(j>k-l)(r=j-l;}else(returna[k-l];}}GrayCode#include<stdio.h>#includeMGrayCode.hMconstintMAX=100;intmain0(intn,num[MAX];printfC'Pleaceinputthenumber/1);scanf(”%d",&n);for(inti=0;i<n;i++)(num[i]=0;}grayCode(num,n);printfC'Xn");grayCode_add(num,n);return0;}voidprint(intnum[],intn)(for(inti=0;i<n;i++){printed\num[i]);}printfC'Xn");}voidgrayCode(intnumQjntn)(print(num,n);for(inti=0;i<(l«(n-l))-l;i++)(num[n-l]=!num[n-l];print(num,n);for(intj=n-l;j>0;j--)(if(num[j]==l)(num[j-l]=!numO-l];break;}}print(num,n);}num[n-l]=!num[n-l];print(num,n);〃增0/1voidgrayCode_add(intnum[]jntn)(inti,j,t;for(i=0;i<(l«n);i++)(t=(iA(i»l));for(j=n-1;j>=0;j--,t>>=1)num[j]=t%2;print(num,n);}}JohnsonTrotter#include<stdio.h>#include”JohnsonTrotter.h”constintMAX=100;intmain0(intn;INTSnum[MAX];printfC'Pleaseinputthenumber:11);scanf(”%d",&n);printf(Mrankdirection(0:left;l:right)\nM);for(inti=0;i<n;i++){num[i].val=i+1;num[i].row=0;printf(明d",num[i].val);}printf("");for(inti=0;i<n;i++)(printf("0");}num[n].val=Oxfffffff://结构体默认初始化为0,为了防止num[n-l].val与num[n].val交换,赋值为无穷printf("\n");johnsonTrotter(num,n);return0;}typedefintElemType:typedefstruct(ElemTypeval;introw:〃0指向左,1指向右}INTS;voidswap(ElemType&a,ElemType&b){ElemTypetmp=a;a=b;b=tmp;}intmaxMove(INTSmumjntn)(ElemTypemaxN=0,maxi=-1;if(num[0].val>num[l].val&&num[0].row&&num[0].val>maxN)(maxi=0;maxN=num[0].val;}for(inti=l;i<n;i++){if(num[i].row&&num[i].val>numO+l].val||!num[i].row&&num[i].val>num[i-l].val)(if(num[i].val>maxN)(maxi=i;maxN=num[i].val;}}}if(!num[n-l].row&&num[n-l].val>num[n-2].val&&num[n-l].val>maxN)(maxi=n-1;maxN=num[n-l].val;}//printf("^d\n,,1maxi);returnmaxi;}voidprint(INTS*num,intn)(for(inti=0;i<n;i++){〃输出排列printf("Hd",num[i].val);}printf("");for(inti=0;i<n;i++){printf("Hd",num[i].row);}printf(,,\nM);}voidjohnsonTrotter(INTS*num,intn){intmaxi=maxMove(num?n);while(maxi!=-1)(if(num[maxi].row)(swap(num[rnaxi].val,num[maxi+l].val);swap(num[maxi].row,nurn[rnaxi+l].row):maxi++;}else(swap(num[maxi].val,num[maxi-l].val);swap(num[maxi].row,nurn[rnaxi-l].row);maxi--;}for(inti=O;i<n;i++)(if(num[i].val>num[maxi].val)(num[i].row=!num[i].row;}}print(num,n);maxi=maxMove(num,n);}}JohnsonTrotter#include<stdio.h>#include"HeapSort.h,,intmainO(ElemTypeh[MAX];intn;printf("Pleaseinputthenumber:11);scanf(”%d",&n);printf("Pleaseinputthearray:");for(inti=l;i<=n;i++)(scanf('%d”,&h[i]);}printfCHeapSortoutputthearray:");heapSort(h.n);return0;}typedefintElemType:constintMAX=100;voidswap(ElemType&a,ElemType&b)(ElemTypetmp=a:a=b;b=tmp;voidheapBottomUp(EIemTypeh[],intn)(intk,v,heap=1,i,j;for(i=n/2;i>=l;i-){k=i;v=h[k];heap=1;while(heap&&2*k<=n){j=2*k;if(j<n){if(hO]<h[i+l])(j=j+l;if(v>=h[j])k=j;}if(v>=h[j])heap=0;else(h[k]=h[j];k=j;}}}}h[k]=v;}voidsift任lemTypehQ.intn,intm){inti=m,j=2*i,t二h[i];boolisTrue=true;while。v=n&&isTrue)(if(j<n&&h[j]<h[j+l]){i=i+i;}if(t<h[j])(h[i]=h[j];i=j;j=2*i;}else(//break;isTrue二false;}}h[i]=t;}voidheapSort(ElemTypehQ,intn)(intp=n/2;for(inti=p;i>=l;i--)(sift(h,n,i);}for(inti=n;i>=2;i--){printf("^d”,h[l]);swap(h[l],h[i]);sift(hj-l.l);//heapBottomUp(h,n);}p「intf("%d\n”,h[l]);}Horner#include<stdio.h>#includeMHomer.h"intmainO(intP[MAX];n,x;printf(Mpleaseinputtnenumber:");scanf(”%d",&n);printfC'pleaseinputthepolynomialcoefficients:");for(inti=0;i<n;i++)(scanf(”%d”,&P[i]);}printf(Mpleaseinputthenumberx:M);scanf(”%d",&x);printf("outputtheanswer:11);for(inti=n-l;i>=0;i--)(if(PH==l)(printf("xA%dHj);}elseif(P[i]!=O)(printf(明dxA%d”,P[i],i);}if(i!=0)printf("+");}printf(M=%d\nMthomer(P,n,x));return0;constintMAX=100;inthorner(intPQ,intn,intx)(intp=P[n-1];for(inti=n-2;i>=0;i--)(p=x*p+P[i];}returnp;}BinaryExponentiation#include<stdio.h>#include,,BinaryExponentiation.h,'intmain0(inta,m;printf(npleaseinputthenumber:");scanf("%d,,,&a);printf(npleaseinputthenumberexponentiation:”);scanf(”%d”,&m);printf("outputtheanswer(right->left):%d\nM,rightElftBinaryExponentiation(a,rn));printf("outputtheanswer(left->right):%d\n",leftRightBinaryExponentiation(a,m));return0;}constintMAX=100;intleftRightBinaryExponentiation(inta,intm)(intproduct=a:n=0,b[MAX]:while(m)(b[n++]=m%2;m=m>>l;}for(inti=n-2;i>=0;i--)(product=product*product;if(b[i]){product=product*a;}}returnproduct;}intrightElftBinaryExponentiation(inta;intm)(intterm=a,product,n=m;if(m&l)(product=a;)else{product=1;}for(inti=m;i>0;i=i>>l)(term=term*term;if((n>>l)&l)(product=product*term;}n=n>>l;}returnproduct;}Horspool#include<stdio.h>#include”Horspool.h”intmainO(elemTypeT[MAX],P[MAX];intiprintf(Mpleaseinputthenumberofn:M);scanf(明d”,&n);getcharO;printf(MpleaseinputthestringT:'1);for(i=0;i<n;i++)(scanf(”%c”,&T[i]);}T[n]=Wprintf(Mpleaseinputthenumberofm:M);scanf(明d”,&m);getcharO;printf("pleaseinputthestringP:M);for(j=0;j<m;j++)(scanf(,,%c,,,&Pg]);}P[m]=W;inttm=horspool(P,m,T,n);if(tm!=-l){printf(”匹酉己\n“);)else{constintMAX=100;typedefcharelemType;voidshiftTable(elemTypePQ,m)(for(inti=0;i<26;i++)(table[i]=m;}for(inti=0;i<m-l;i++)(intk=(int)(P[i]-'A');table[k]=m-l-i;}}inthorspool(elemTypePQ,intm,elemTypeT[],intn)(inttable[MAX];shiftTable(P,table,m):inti=m-1,k=0;while(i<=n-l&&k<=m)(k=0;while(P[m-l-k]==T[i-k])(k++;}if(k==m)(returni-m+1;}else(intj=T[i]-'A';i=i+table[j];}}return-1;}Horspool#include<stdio.h>#includeMRoyd.hM#include<cstdio>intmain0(intW[MAX][MAX],n;printf("pleaseinputn(权重100表示无出边):");while(scanf(,,Md"l&n)!=EOF)(for(inti=0;i<n;i++)(for(intj=0;j<n;j++)(scanOd",&W[i]D]);}}printf("\n");floyd(W,n);for(inti=0;i<n;i++)(for(intj=0;j<n;j++)(printed,,,W[i]0]);}printf("\n");}printf("\n");printf("pleaseinputn(权重100表示无出边}return0;}typedefintelemType;constintMAX二100;intMin(inta,intb){returna>b?b:a;}voidfloyd(intWQ[MAX],intn)(for(intk=0;k<n;k++)(for(inti=0;i<n;i++)(for(intj=0;j<n;j++)(W[i]D]=Min(W[k]D]+W[i][k],W[i][j]);}}}}Knapsack背包#include<stdio.h>#includeMKnapsack.hH#include<cstdio>constintMAX=100;intmainO(//freopen(Minput.txt,,,l,r",stdin);intw[MAX],v[MAX],W=0,V[MAX][MAX],n;printf("pleaseinputtheW:");scanf(,,%d,,,&W);scanf(明d”,&n);for(inti=0;i<=W;i++)(V[0][i]二0;}for(inti=0;i<=n;i++)(V[i][0]=0;}printf("pleaseinputweight");for(inti=l;i<=n;i++)(scanf(”%d”,&w[i]);}printf("pleaseinputvelue:");for(inti=l;i<=n;i++)(scanf("%d",&v[i]);}knapsack(V,w,v,n,W);//pack_notdi(V,w,v,n,W):printf(“背包中最大价值:%d\n",V[n][W]);printfC输出动态规划表\n')for(inti=0;i<=n;i++)(for(intj=0;j<=W;j++)(printf(明4d”,V[i][j]);}printf("\n");}for(inti=l;i<=n;i++)(for(intj=l;j<=W;j++)(V[i]fl]=0;}}knapsack_d(Vtw,v,n,W);printf(”背包中最大价值:%d\n",V[n][W]);printfC'输出动态规划表\n”);for(inti=0;i<=n;i++)(for(intj=0;j<=W;j++)(printf(明4d”,V[i][j]);)return0;}intMax(inta;intb)(returna>b?a:b;}voidknapsack(intV[][100],intwO,intvQ,intn,intW)(for(inti=l;i<=n;i++)(for(intj=l;j<=W;j++)(if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长治医学院《旅游资源开发与管理》2025-2026学年期末试卷
- 江西财经大学《中国社会发展导论》2025-2026学年期末试卷
- 福州墨尔本理工职业学院《儿童发展》2025-2026学年期末试卷
- 阳泉职业技术学院《新编普通话教程》2025-2026学年期末试卷
- 宿州航空职业学院《保险学》2025-2026学年期末试卷
- 福州职业技术学院《病理检验技术》2025-2026学年期末试卷
- 盐城工学院《口腔医学导论》2025-2026学年期末试卷
- 长治学院《广告创意表现》2025-2026学年期末试卷
- 厦门海洋职业技术学院《工程造价管理与编制》2025-2026学年期末试卷
- 三明学院《幼儿美术教育与活动指导》2025-2026学年期末试卷
- 《灰尘的旅行》导读课教学课件
- 五年级下学期数学第三单元《长方体和正方体》
- 肿瘤学-肿瘤姑息治疗
- 江苏省南京市2024年高二上学期期中考试英语试题含解析
- DB32T3916-2020建筑地基基础检测规程
- 2024中国心衰器械白皮书-沙利文
- 中深层地热供热技术规范 井下换热
- 人事档案情况摘抄表
- 学生满意度测评 证明
- 基于ABAQUS的刹车盘热应力分析
- 2023学年完整公开课版横断面测量
评论
0/150
提交评论