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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

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

经典算法.doc

1、常用算法经典代码(C+版) 一、快速排序void qsort(int x,int y) /待排序的数据存放在 a1.an数组中int h=x,r=y;int m=a(x+y)1; /取中间的那个位置的值while(hm) r-; /比中间那个位置的值大,循环直到找一个比中间那个值小的if(hx) qsort(x,r);/注意此处,尾指针跑到前半部分了if(h=1;j-) /相邻的两两比较if(aja;tonga+;/相应的桶号计数器加 1for(int i=1;i0) /当桶中装的树大于 0,说明 i 出现过 tongi次,否则没出现过 iwhile (tongi!=0)tongi-;cout

2、=y) return;mid=(x+y)/2;/求x,y 区间,中间的那个点 mid,mid 把 x,y 区间一分为二mergesort(x,mid);/对前一段进行二路归并mergesort(mid+1,y);/对后一段进行二路归并merge(x,mid,y);/把已经有序的前后两段进行合并归并排序应用了分治思想,把一个大问题,变成两个小问题。二分是分治的思想。五、二分查找int find(int x,int y,int m) /在x,y区间查找关键字等于 m 的元素下标 int head,tail,mid;head=x;tail=y;mid=(x+y)/2);/取中间元素下标if(amid

3、=m) return mid;/如果中间元素值为 m 返回中间元素下标 midif(headtail) return 0;/如果 xy,查找失败,返回 0if(mamid) /如果 m 比中间元素大,在后半区间查找,返回后半区间查找结果return find(mid+1,tail);else /如果 m 比中间元素小,在前半区间查找,返回后前区间查找结果return find(head,mid-1);六、高精度加法#include#includeusing namespace std;int main()string str1,str2;int a250,b250,len; /数组的大小决定了

4、计算的高精度最大位数int i;memset(a,0,sizeof(a);memset(b,0,sizeof(b);cinstr1str2; /输入两个字符串a0=str1.length(); /取得第一个字符串的长度for(i=1;ib0?a0:b0); /取两个字符串最大的长度for(i=1;i1) len-;for(i=len;i=1;i-)coutusing namespace std;int compare(string s1,string s2);int main()string str1,str2;int a250,b250,len;int i;memset(a,0,sizeof

5、(a);memset(b,0,sizeof(b);cinstr1str2;a0=str1.length();for(i=1;i1) a0-;for(i=a0;i=1;i-)cout1) b0-;for(i=b0;i=1;i-)couts2.length() return 0; /先比较长度,哪个字符串长,对应的那个数就大if(s1.length()s2i) return 0;if(s1i#includeusing namespace std;int main()string str1,str2;int a250,b250,c500,len; /250 位以内的两个数相乘int i,j;mems

6、et(a,0,sizeof(a);memset(b,0,sizeof(b);cinstr1str2;a0=str1.length();for(i=1;i1) len-; /为什么此处要 len1?for(i=len;i=1;i-)cout#includeusing namespace std;void num1(int s,string st1);int a2501,b2501,c5002;/此处可以进行 2500 位万进制乘法,即 10000 位十进制乘法。Int main() string str1,str2;int len;cinstr1str2;memset(a,0,sizeof(a)

7、;memset(b,0,sizeof(b);memset(c,0,sizeof(c);num1(a,str1); /把 str1 从最低位开始,每 4 位存放在数组 a 中num1(b,str2); /把 str2 从最低位开始,每 4 位存放在数组 b 中for(int i=1;i1) len-;/去掉高位的 0,并输出最高位cout=1;i-)/把剩下来的每一位还原成 4 位输出if (ci=0;i-) /从最低位开始,处理每一位 if (count%4=0) sk+=(st1i-0)*1000; if(i!=0) k+;if (count%4=1) sk=(st1i-0);if (count%4=2) sk+=(st1i-0)*10;if (count%4=3) sk+=(st1i-0)*100;count+;s0=k; /存放数组的位数,就是按 4 位处理后的万进制数的位数。 Return;九、高精度除法(没讲)十、筛选法建立素数表

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。