- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复习:经典算法总结 互换算法 一碗米饭与一碗面条互换。 求最大(小)值 从x0,x1,x2,…,xn,中挑选出最大(小)值 英文大小写互换 小写字母lc,lc∈{‘a’,’b’,…,’z’}转换为相应的大写字母uc∈{‘A’,’B’…,’Z’} 数字转换为数字字符 数字data∈{0,1,2,..,9};转换为cdata∈{‘0’,’1’,...,’9’} 累和(积) 对x1,x2,…,xn,累和(积) 对有明确算法的编程 对那些如:求一元二次方程的根,求三角形的面积,闰年,判断给定数是否为素数、水仙花数,完数,求两正数的最大公约数、最小公倍数,分段断函数等一类的编程。根据所给定的算法(公式)直接编程。 取出正整数中各位数字 正整数xnxn-1…x0,各位数字为xn,xn-1,…,x0,如:6543210,各位数字为6,5,4,3,2,1,0 数字字符(串)转换为纯数字 数字字符:0, 1, 2, 3, 4, 5, 6, 7, 8, 9 数字字符串:0123, 17899, 23456, 999993 顺(倒)推箱子 对x1,x2,…,xn,由外力F顺推其成为xn,x1,…,xn-1称为顺推。 对x1,x2,…,xn,由外力F倒推其成为x2,x3,…,xn ,x1称为倒推。 排序算法 数字排序 起泡法 选择排序法 递归算法 递归算法 递归结束条件 递归表达式 数组的倒置(转置)算法 一维数组的倒置算法 A[ ]={0,1,2,3,4,5,6,7,8,9},倒置为a[ ]={9,8,7,6,5,4,3,2,1,0} 可多次采用顺推(倒推)箱子法。 也可用a[i] ←→a[n-1-i],i∈{0,1,..,(n-1)/2} 用矩形法求定积分 用矩形法求解 字符串拷贝算法 有char *p=“……”, *q=b[N];(其中Nlen(p))将p所指向的字符串拷贝到q所指向的字符数组中。算法如下: 链表操作算法 链表操作 创建链表(从无到有) 输出链表(从头到尾遍历) 查找结点(找满足条件的结点) 删除结点(先找满足条件的结点后删除) 插入结点(先找满足条件的结点后插入) C 程 序 设 计 * 复习:经典算法总结 * . . a:米饭,b:面条,t:空碗 三个步骤: t=a; a=b; b=t; 例,用函数实现互换。 void swap(int *p,int *q) { int t; t=*p,*p=*q,*q=t; } . 最大值算法: y=x0; y=max(x0,x1,…xk-1); y=max(y,xk),其中0k≤n; 例如,从键盘输入10个整数,挑选出最大值。 scanf(“%d”,x); y=x; for(k=2;k=10;k++) { scanf(“%d”,x); if(yx) y=x; } 最小值算法: y=x0; y=min(x0,x1,…xk-1); y=min(y,xk),其中0k≤n; . 小写字母转换为大写字母算法: uc=lc-32 大写字母转换为小写字母算法: lc=uc+32 例:将字符串s中大写字母转换为相应的小写字母 void convert(char *s) { for(;*s!=‘\0’;s++) { if(*s=‘A’ *s=‘Z’) *s=*s+32; } } . 算法: cdata=data+’0’; 例,从键盘上输入10个一位正整数,输出其对应的数字字符。 void main( ) { int x,i; for(i=1;i=10;i++) { scanf(“%d”,x); printf(“%c”,x+’0’); } } . 累和算法: y=0; y= x1+…+xk-1; y=y+xk,其中0k≤n; 例如,从键盘输入10个整数,计算其和。 y=0; for(k=1;k=10;k++) { scanf(“%d”,x); y=y+x; } 累积算法: y=1; y= x1*…*xk-1; y=y*xk,其中0k≤n; . 编程时,需: 考虑存储方式(单变量、数组,结构体); 考虑各存储方式的数据类型(int ,long,float,char,指针); 用C描述出算法。 例:求两正整数m,n的最大公约数。 int gys(int m,int n) { int t; if(mn) t=m,m=n,n=t; r=m%n; while(r0) { m=n,n=r,r=m%n; } return n; } . 算法: 设y= xnxn-1…x0,
文档评论(0)