随笔分类 -  算法

有时候算法还是需要的,比如面试
摘要:1.首先是阶乘的递归算法:#include<stdlib.h>intrecursion(inti){intsum;if(i==0)//递归的终止条件{sum=1;}else{sum=recursion(i-1)*i;//开始递归调用}returnsum;}intmain(intargc,charargv[]){inti;for(i=5;i>0;i--){printf("%d的递归是%d\n",i,recursion(i));}}代码... 阅读全文
posted @ 2011-11-28 11:47 草珊瑚 阅读(263) 评论(0) 推荐(0) 编辑
摘要:#include<stdio.h>#include<stdlib.h>structllist{intnum;structllist*next;};typedefstructllistnode;typedefnode*llink;//链表的输出 这道题目是用来abcde,你输入e,输出eabcd;你输入d,输出deabcvoidprintllist(llinkptr){while(ptr!=NULL){printf("[%d]",ptr->num);ptr=ptr->next;}printf("\n");}//链表的建立 阅读全文
posted @ 2011-10-06 22:56 草珊瑚 阅读(268) 评论(0) 推荐(0) 编辑
摘要:公交线路1:A->B公交线路2:C->D公交线路3:B->C查询1:A站到B站乘什么线路?遍历三条公交线路,哪几条选录存在A站?遍历结果,公交线路1。遍历公交线路1,是否存在B站?遍历结果,存在B站。所以,查询1的结果是,公交线路1.查询2:A站到C站乘什么线路?遍历三条公交线路,哪几条线路存在A站?遍历结果,公交线路1。遍历公交线路1,是否存在C站?遍历结果,不存在C站。遍历公交线路1,取出除A站外所有公交站。取出结果,取出B站。遍历三条公交线路,哪几条线路存在B站?遍历结果,公交线路3。遍历公交线路3,是否存在C站?遍历结果,存在C站。所以,查询2的结果是,先乘公交线路1 阅读全文
posted @ 2011-04-27 11:55 草珊瑚 阅读(532) 评论(0) 推荐(0) 编辑
摘要:#include<stdlib.h>intmain(intargc,charargv[]){intn;intfn;intfn2;intfn1;inti;printf("请输入数列项数==>");scanf("%d",&n);if(n<=1){printf("[%d]\n",n);}else{fn2=0;fn1=1;printf("[0][1]");for(i=2;i<=n;i++){fn=fn2+fn1;printf("[%d]",fn);fn2=fn1;f 阅读全文
posted @ 2011-04-05 15:35 草珊瑚 阅读(211) 评论(0) 推荐(0) 编辑
摘要:/**写一个函数找出一个整数数组中,第二大的数(microsoft)*要求效率尽可能高*/#include<stdio.h>#include<stdlib.h>intfind(int*a,intn){inti=1;intsecond=*(a+i);while(i<n){if(*(a+i)>second)second=*(a+i);i++;}returnsecond;}intfindsecondmaxvalue(int*a,intn){inti=0;intfirst=*(a+i);intsecond=*(a+i);while(i<n){if(*(a+i) 阅读全文
posted @ 2011-03-17 20:30 草珊瑚 阅读(1519) 评论(0) 推荐(0) 编辑
摘要:代码如下:#include<stdio.h>#include<stdlib.h>structllist{intnum;structllist*next;};typedefstructllistnode;typedefnode*llink;voidprintllist(llinkptr)//链表输出{while(ptr!=NULL){printf("[%d]",ptr->num);ptr=ptr->next;}printf("\n");}//链表的创建llinkcreatellist(int*array,intlen){ 阅读全文
posted @ 2011-03-13 17:15 草珊瑚 阅读(1044) 评论(0) 推荐(0) 编辑
摘要:有两个整形数组A和B,请编程去除这两个数组间的交集。若有相同元素,则在相同元素较多的数组中保留它。例如,数组A有三个1,数组B有两个1,程序将删除数组B中的两个1.只能讲讲思路,因为我做不出来。举个例子:数组a,11123数组b,1122224经程序运行后,结果数组a为1113数组b为222240.数组a和数组b的交集。放在数组c。计算出数组c的长度strlne。1.统计数组a与数组c相同元素的个数ua[]。统计数组b与数组c相同元素的个数ub[]。2.进行个数比较ua[] > ub[]。循环次数是strlen。3.如果,ua[strlne] > ub[strlne]进行数组b的c 阅读全文
posted @ 2011-03-13 17:13 草珊瑚 阅读(1485) 评论(0) 推荐(0) 编辑
摘要:#include<stdio.h>#include<stdlib.h>#defineN5int*func(int*x,int*y){staticintt=0;if(*x<*y){t+=*x;printf("%d\n",t);returnx;}else{t+=*y;printf("%d\n",t);returnx;}}intmain(intargc,char*argv[]){inti;intx=3;int*p,*q,*r;q=&x;for(i=1;i<=N;i++){p=&i;r=func(p,q);}/ 阅读全文
posted @ 2011-03-13 12:12 草珊瑚 阅读(550) 评论(0) 推荐(0) 编辑
摘要:只给题目,不给参考答案的算法书不是好书。你知道你要浪费一个人多少的思考时间。因为你那特定唯一结果,我的很多思路都被判断为不正确。而我的很多思路,用其他结果就是正确。shit,bull shit。 阅读全文
posted @ 2011-03-12 11:59 草珊瑚 阅读(223) 评论(0) 推荐(0) 编辑
摘要:C语言链表,多一个头结点,可以方便处理链表的结点增加,删除。看代码代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--/*========================================*//*程式实例:3_9.c*//*开头节点的链结串列*//*========================================*/#includestdlib.hstructllist/*串列结构宣告*/{intnum;/*邮寄编 阅读全文
posted @ 2011-01-14 10:37 草珊瑚 阅读(556) 评论(0) 推荐(0) 编辑
摘要:数据结构C语言>基本链表>使用malloc()函数分配一块浮点数内存使用malloc()函数分配一块浮点数内存Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<stdio.h>#include<stdlib... 阅读全文
posted @ 2010-10-20 21:03 草珊瑚 阅读(1319) 评论(0) 推荐(0) 编辑
摘要:首先上源代码:[代码]然后我的想象描述:我来解释下吧:其实就是对源代码进行画图啦,比如声明int,其实就是从内存拉个空间过来,听起来像拉控件。不同的数据类型,所占用内存空间不同,那么其图形也不同,这个自定义了图形,但是对该图形放大后,应该能显示该数据类型所占用的位数。然后函数调用,函数是人定的,代表函数的图形也是人自定义的,当然这图形一眼就能显示这函数的功能就ok了,鼠标移到该函数图形,显示函数功... 阅读全文
posted @ 2010-08-22 21:59 草珊瑚 阅读(623) 评论(0) 推荐(0) 编辑
摘要:C语言中,没有字符串类型。用字符数组来模仿字符串类型。上代码:[代码]因为我们事先不知道字符串的长度,所以输出时将数组遍历一次,清除数组内容。要想知道字符串长度,得加一个结束字符标示。如下代码:[代码] 阅读全文
posted @ 2010-08-18 10:57 草珊瑚 阅读(807) 评论(0) 推荐(0) 编辑
摘要:二维数组里,有大部分空间没使用,为了增加数组内存的使用效率,我们要压缩它。嗯,上代码[代码] 阅读全文
posted @ 2010-08-17 23:19 草珊瑚 阅读(2557) 评论(0) 推荐(0) 编辑
摘要:以行的方式:[代码]是5*6的表格数据,用一维数组存储。遍历,还是二维数组的遍历方式。第一个循环是行的循环,第二个是列的循环。下面是列为主的代码:[代码] 阅读全文
posted @ 2010-08-02 11:15 草珊瑚 阅读(2462) 评论(0) 推荐(0) 编辑
摘要:首先看代码1:[代码]很明显,最坏的情况,什么也查不到,但整个数组遍历了。看代码2:[代码]除了第一次查询要创建pointer数组外,以后每次查询都可以固定时间内找到。当然,此程序的前提是,每个成绩只出现一次。那么出现多次呢?我也没想好。 阅读全文
posted @ 2010-07-30 14:51 草珊瑚 阅读(4196) 评论(0) 推荐(0) 编辑
摘要:传值调用并不能改变两个变量的值,而传址能。为什么,因为,传值调用,仅仅是在函数内,调换参数的值。而地址所指向的值,改变的不仅仅是函数内,函数外也改变。请看代码:[代码] 阅读全文
posted @ 2010-07-29 17:16 草珊瑚 阅读(596) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示