欢迎来到天天文库
浏览记录
ID:27718602
大小:465.50 KB
页数:42页
时间:2018-12-04
《[工程科技]强化复习之常用算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、强化复习之常用算法2021/6/30110进制整数m转换为n进制j=0;while(m>0){a[j++]=m%n;m=m/n;}2021/6/302最大公约数辗转相除法r=m%n;while(r>0){m=n;n=r;r=m%n;}2021/6/303素数判断2021/6/304for(i=2;isqrt(m))“m为素数”二分法求根2021/6/305while(fabs(b-a)>eps){h=(a+b)/2;if(f(h)==0)brea
2、k;if(f(a)*f(h)<0)b=h;elsea=h;}牛顿法求根2021/6/306x1=3;do{x0=x1;x1=x0-f(x0)/f1(x0);}while(fabs(x1-x0)>eps);3弦切法求根2021/6/307x1=3;do{x0=x1;x1=x0+(b-x0)/(f(b)-f(x0))*f(x0);}while(fabs(x1-x0)>eps);字符图形2021/6/308for(i=1;i<行数;i++){for(j=1;j<第i行首字符位置;j++)printf(““);for(j
3、=1;j<第i行字符个数;j++)printf(a[i][j]);printf(“”);}*****************************变形:(1)如果图形是左对齐,则第二行可删去;(2)如果图形不是左对齐,首先左对齐,再计算相关参数;冒泡排序升序2021/6/309for(i=0;ia[j+1])“交换a[j],a[j+1]”变形:(1)降序(2)每一轮求最小者(3)当某一轮已有序,终止排序过程(4)效率最低的排序;(5)每一
4、轮只比较一次;被比较的两个数始终相邻选择排序升序2021/6/3010for(i=0;ia[j])“交换a[i],a[j]”每轮和同一个数比较插入排序升序2021/6/3011for(i=0;im)break;if(i>=n-1)a[n-1]=m;elsefor(j=n-1;j>i;i--)a[j]=a[j-1];a[i]=m;}归并排序升序2021/6/3012while(i5、b[j++])c[k++]=b[j];else{c[k++]=a[i++];c[k++]=b[j++];}}if(i>n)for(i=j-1;i6、(j=0;j<30;j++){scanf(“%d”,&no[j]);for(s=0,k=0;k<5;k++)/*第J个人的总分*/{scanf(“%d”,&a[j][k]);s+=a[j][k];}a[j][5]=(float)s/5;/*第J个人的平均分*/}30个学生5门成绩30个学生的编号30个学生的成绩排序根据平均成绩排序for(j=0;j<29;j++)/*变形的选择排序*/{l=j;/*每轮只交换一次*/for(k=j+1;k<30;k++)if(a[p[l]][5]7、=p[j];p[j]=p[l];p[l]=t;}}for(k=0;k<30;k++)for(j=0;j<6;j++){printf(“%4d,%4.1f”,no[p[k]],a[p[k]][j]);printf(“”);}字符串排序(10个串,每个串小于10个字符)#include“string.h”main(){chara[100],*str[10],*sp;inti,k;char*temp;sp=a;/*难点*/for(i=0;i<10;i++){printf(“Inputastring(<9charac8、ter):”);gets(sp);str[i]=sp;sp+=10;}10个字符串都放在数组a中每个串的首地址放在字符指针数组str中aaabbbccc降序排列for(k=0;k<9;k++)for(i=k+1;i<10;i++)if(strcmp(str[i],str[k])<0){temp=str[i];str[i]=str[k];str[k]=temp;}/*尽量少
5、b[j++])c[k++]=b[j];else{c[k++]=a[i++];c[k++]=b[j++];}}if(i>n)for(i=j-1;i6、(j=0;j<30;j++){scanf(“%d”,&no[j]);for(s=0,k=0;k<5;k++)/*第J个人的总分*/{scanf(“%d”,&a[j][k]);s+=a[j][k];}a[j][5]=(float)s/5;/*第J个人的平均分*/}30个学生5门成绩30个学生的编号30个学生的成绩排序根据平均成绩排序for(j=0;j<29;j++)/*变形的选择排序*/{l=j;/*每轮只交换一次*/for(k=j+1;k<30;k++)if(a[p[l]][5]7、=p[j];p[j]=p[l];p[l]=t;}}for(k=0;k<30;k++)for(j=0;j<6;j++){printf(“%4d,%4.1f”,no[p[k]],a[p[k]][j]);printf(“”);}字符串排序(10个串,每个串小于10个字符)#include“string.h”main(){chara[100],*str[10],*sp;inti,k;char*temp;sp=a;/*难点*/for(i=0;i<10;i++){printf(“Inputastring(<9charac8、ter):”);gets(sp);str[i]=sp;sp+=10;}10个字符串都放在数组a中每个串的首地址放在字符指针数组str中aaabbbccc降序排列for(k=0;k<9;k++)for(i=k+1;i<10;i++)if(strcmp(str[i],str[k])<0){temp=str[i];str[i]=str[k];str[k]=temp;}/*尽量少
6、(j=0;j<30;j++){scanf(“%d”,&no[j]);for(s=0,k=0;k<5;k++)/*第J个人的总分*/{scanf(“%d”,&a[j][k]);s+=a[j][k];}a[j][5]=(float)s/5;/*第J个人的平均分*/}30个学生5门成绩30个学生的编号30个学生的成绩排序根据平均成绩排序for(j=0;j<29;j++)/*变形的选择排序*/{l=j;/*每轮只交换一次*/for(k=j+1;k<30;k++)if(a[p[l]][5]7、=p[j];p[j]=p[l];p[l]=t;}}for(k=0;k<30;k++)for(j=0;j<6;j++){printf(“%4d,%4.1f”,no[p[k]],a[p[k]][j]);printf(“”);}字符串排序(10个串,每个串小于10个字符)#include“string.h”main(){chara[100],*str[10],*sp;inti,k;char*temp;sp=a;/*难点*/for(i=0;i<10;i++){printf(“Inputastring(<9charac8、ter):”);gets(sp);str[i]=sp;sp+=10;}10个字符串都放在数组a中每个串的首地址放在字符指针数组str中aaabbbccc降序排列for(k=0;k<9;k++)for(i=k+1;i<10;i++)if(strcmp(str[i],str[k])<0){temp=str[i];str[i]=str[k];str[k]=temp;}/*尽量少
7、=p[j];p[j]=p[l];p[l]=t;}}for(k=0;k<30;k++)for(j=0;j<6;j++){printf(“%4d,%4.1f”,no[p[k]],a[p[k]][j]);printf(“”);}字符串排序(10个串,每个串小于10个字符)#include“string.h”main(){chara[100],*str[10],*sp;inti,k;char*temp;sp=a;/*难点*/for(i=0;i<10;i++){printf(“Inputastring(<9charac
8、ter):”);gets(sp);str[i]=sp;sp+=10;}10个字符串都放在数组a中每个串的首地址放在字符指针数组str中aaabbbccc降序排列for(k=0;k<9;k++)for(i=k+1;i<10;i++)if(strcmp(str[i],str[k])<0){temp=str[i];str[i]=str[k];str[k]=temp;}/*尽量少
此文档下载收益归作者所有