电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

acm基本算法大全

  • 资源ID:104969517       资源大小:536.50KB        全文页数:140页
  • 资源格式: DOC        下载积分:18金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要18金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

acm基本算法大全

第一章 排序、顺序统计与解题的基本策略1.1计数排序/ 计数排序.cpp : Defines the entry point for the console application./计数排序,输入数字,在0100之间,数字个数一般远多于100#include "stdafx.h"#include <iostream>using namespace std;int main(int argc, char* argv)int n;while(cin>>n)int count101=0,arrayA10000,arrayB10000,i;for(i=0;i<n;i+)cin>>arrayAi;countarrayAi+;for(i=1;i<101;i+)counti+=counti-1;for(i=0;i<n;i+)arrayB-countarrayAi=arrayAi;for(i=0;i<n;i+)cout<<arrayBi<<' 'cout<<endl;return 0;1.2 快速排序/ 快速排序sort和qsort.cpp : Defines the entry point for the console application./#include "stdafx.h"#include <iostream>#include <cstdlib>#include <algorithm>using namespace std;typedef struct int x,y;Node;bool cmpfn(Node a,Node b)return a.x<b.x;int Cmp(const void *a,const void *b)return (*(Node *)a).x-(*(Node *)b).x;int main(int argc, char* argv)int i,n;Node array100;for(cin>>n,i=0;i<n;i+)cin>>arrayi.x>>arrayi.y;sort(array,array+n,cmpfn);/qsort(array,n,sizeof(arrayi),Cmp);for(i=0;i<n;i+)cout<<arrayi.x<<' '<<arrayi.y<<endl;return 0;1.3稳定排序/ 稳定排序.cpp : Defines the entry point for the console application./#include "stdafx.h"#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;/从小到大排序bool cmpfn(int a,int b)return a<b;/*/从大到小排序bool cmpfn(int a,int b)return a>b;*/int main(int argc, char* argv)int i,n,array100;for(cin>>n,i=0;i<n;i+)cin>>arrayi;stable_sort(array,array+n,cmpfn);for(i=0;i<n;i+)cout<<arrayi<<' 'cout<<endl;return 0;1.4堆排序/ 堆排序.cpp : Defines the entry point for the console application./*堆排序排成完全二叉树,满足一下性质: 1.如果某节点有孩子,则根节点的值都小于孩子节点的值。我们称之为小堆根 2.如果某节点有孩子,则根节点的值都大于孩子节点的值。我们称之为大堆根以小堆根为例,根节点是最小值,次小值在根节点的两个孩子中 调整建堆的时间复杂度为W(lbn)小根堆 */#include "stdafx.h"#include <iostream>using namespace std;void DownHeap(int heap,int r,int len)int i,s=heapr;i=r<<1;while(i<=len)if(i+1<=len && heapi+1<heapi)i+;if(heapi<s)heapr=heapi;r=i;i=r<<1;elsebreak;heapr=s;void UpHeap(int heap,int r,int len)int i,s=heapr;i=r>>1;while(i>0 && s<heapi)heapr=heapi;r=i;i=r>>1;heapr=s;void MakeHeap(int heap,int len)for(int i=len>>1;i>0;i-)DownHeap(heap,i,len);void PushHeap(int heap,int x,int &len)heap+len=x;UpHeap(heap,len,len);void PopHeap(int heap,int &x,int &len)x=heap1;heap1=heaplen;DownHeap(heap,1,-len);void PrintHeap(int heap,int len)int i=len,x,a100;while(i>0)PopHeap(heap,x,i);alen-i=x;for(i=1;i<=len;i+)cout<<ai<<' 'cout<<endl;len=0;int main(int argc, char* argv)int len;while(cin>>len)int heap100,i;for(i=1;i<=len;i+)cin>>heapi;MakeHeap(heap,len);/PrintHeap(heap,len);PushHeap(heap,10,len);PrintHeap(heap,len);return 0;1.5“二分思想”/ 快速排序.cpp : Defines the entry point for the console application./*快速排序体现了“二分”的思想,排序的时间复杂度为nlog2(n),速度最快其排序分成三个步骤:分解、解决和合并 */#include "stdafx.h"#include <iostream>using namespace std;void QuickSort(int array,int st,int ed)if(st<ed)int temp=array(ed+st)/2,i=st,j=ed;while(i<j)while(arrayi<temp)i+;while(arrayj>temp)j-;if(i<j)int t=arrayi;arrayi=arrayj;arrayj=t;QuickSort(array,st,j);QuickSort(array,j+1,ed);int main(int argc, char* argv)int n;while(cin>>n)int array10000,i;for(i=0;i<n;i+)cin>>arrayi;QuickSort(array,0,n-1);for(i=0;i<n;i+)cout<<arrayi<<' 'cout<<endl;return 0;/ 最近点对.cpp : Defines the entry point for the console application./#include <iostream>#include<cmath>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int N = 100005;const double MAX = 10e100;const double eps = 0.00001;typedef struct TYPEdouble x, y;int index; Point;Point aN, bN, cN;double closest(Point *, Point *, Point *, int, int);double dis(Point, Point);int cmp_x(const void *, const void*);int cmp_y(const void *, const void*);int merge(Point *, Point *, int, int, int);inline double min(double, double);int main()int n, i;double d;scanf("%d", &n);while (n)for (i = 0; i < n; i+)scanf("%lf%lf", &(ai.x), &(ai.y);qsort(a, n, sizeof(a0), cmp_x);for (i = 0; i < n; i+)ai.index = i;memcpy(b, a, n *sizeof(a0);qsort(b, n, sizeof(b0), cmp_y);d = closest(a, b, c, 0, n - 1);printf(

注意事项

本文(acm基本算法大全)为本站会员(xins****2008)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.