A. 用c语言写算法
直接手写
size_t lenT, lenP, lenS;
char *e;
if ( !T || !P || !S ) return;
e = strstr( T, P );
if ( !e ) return;
lenT = strlen( T );
lenP = strlen( P );
lenS = strlen( S );
memmove( e+lenS, e+lenP, lenT+1-(e-T)-lenP );
memcpy( e, s, lenS );
假定三个长度 t、p、s 。
strstr: O(t*p)
strlen*3: O(t+p+s)
memmove: O(t-p)
memcpy:O(s)
最终复杂度 O(t*p+2(t+s)) -> O(n^2)。
可以看出热点在 strstr 函数。
如果将其通过 kmp 或类似的匹配算法优化成 O(n) 的,那么复杂度可以直接降为 O(n) 。
B. 怎么算的,写算法
设儿子今年x岁父亲今年y岁。
(x-15)*7=y-15
(x+10)*2=y+10
7x-y=90⋯(1)
2x-y=-10⋯(2)
(1)-(2)
5x=100,x=20岁
代入(1)
y=50岁
C. 写算法有什么格式吗(数据结构学习中。。。)
算法描述当然没有固定格式,自然语言描述的甚至是最容易理解的。
你看到的90%是伪代码,伪代码的好处在于不受编程语言本身的限制,更具通用性。学会看懂伪代码表示的算法是基本功。比如《算法导论》里面的。
D. 写出算法就可以了
double max = Math.sqrt(1000);
for(int i=1;i<max;i++){
System.out.println(i);
}
思路:先得到平方小于1000的最大值max,然后从1到max开始输出
E. 写出算法,谢谢
F. 数据结构编写算法
Node * min = list->head; //minmum node
Node * prv = NULL; //prv's link is the minmum node
while p! = NULL // find the mimimum
if min->data>p->data
min = p; //每找到一个比当前minmun更小的节点,则让P指向这个节点。
end if
prv = p; //让prv的始终指向p的前一个节点
p = p->link;
end while
if prv != NULL // prv is changed,reset the links
prv->link = p->link; //下面3行:让p前面的节点指向p后面的节点
//(p就不在链表里了),然后p指向head,并
//把链表的head设为p
p->link = list->head;
list->head = p;
end if
//else head is the minmum node
///注:没有用malloc申请新的节点,只是申请了新的节点的指针。
//稍微完善了一下,修正了几个错误并写了注释,楼主可以看着给分吧,强烈bs那个我东西的人。写软件的最烦的就是你这种人。
G. 编写算法
#include <iostream.h>
#include <string.h>
void main(){
char a[20],b[20];
int i,j;
cin>>a;
j=strlen(a);
for(i=0;i<j;i++){
b[i]=a[j-1-i];
}
b[j]=a[j];
i=strcmp(a,b);
if(i==0)
cout<<"此字符串为回文!"<<endl;
else
cout<<"此字符串不是回文!"<<endl;
}
献丑,各位大大不要笑话
H. 写算法和写程序有什么区别啊 请你们指教
算法就是解决该问题的思路,可以用自然语言描述,也可以用伪计算机语言描述,目的是分析出解决该问题的方法.
写程序就是根据分析出的算发编写出符合该编程语言语法规范的代码用来编译执行而得到结果.
I. 算法编写方法
C语言程序也是算法的一种形式,以后老师让你写算法的时候你就写程序吧,他会给你满分的。
算法是一种简化的、抽象的程序,是通俗语言加上一些逻辑格式对程序过程的描述,它不是程序,但是所有的程序员都能把它翻译为自己会的那种程序。