- 博客(21)
- 资源 (1)
- 收藏
- 关注
转载 php实现kmp算法
一直也觉得这个算法没啥大的用处,虽然说这个算法是我第一个学起来觉得挺带劲的算法,可是学会了也没用多少,就没公开,最近学到字符串了,题目对时间复杂度有要求,所以我就把它改成php了,后来觉得挺有用的,就上传上来。 $arr_next=array(); function get_next($str_s,&$arr_next){ $i=0;
2016-01-24 14:43:07 690
转载 php实现归并排序(二)
之前写过一个用php实现归并排序,但是那个里面有使用php的API,于是决定重新写一个,不用PHP api的归并排序。写了一早晨,写出来了又觉得没啥意思了,哎,实现不了堆排序,一切都等于是白说啊。 for($i=0;$i $arr[$i]=rand(0,10000); printArr($arr); echo ""; funct
2016-01-21 15:20:58 261
原创 php实现基数排序
php实现基数排序在百度上查了一下资料,然后又听了一下关于这个的课,感觉不算是原创的吧,因为好多代码的思想都是看别人的。整个代码写了一个多小时,php果然是一个很强大的语言啊,以前都是用c写这类东西,现在突然转到php了,感觉突然还有些不习惯。家里没有暖气,手都快冻僵了,好了,粘代码,暖手。 for($i=0;$i $arr[$i]=rand(0,10000
2016-01-20 13:58:23 817 1
转载 php实现计数排序
php实现计数排序这个是参考百度百科的C语言版本,算法思想很简单,就是在相等的数处理的时候有问题,不过后来也想通了,也加上了注释。 $arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4,587,93,47,59,8,2,6,83,4,9,65,2,18,7); printArr($arr); echo ""; fu
2016-01-20 11:29:56 467
转载 php实现快速排序
php实现快速排序快速排序:这个算法是参考百度百科的C语言的代码,没有参考php的代码,因为php的代码虽然思路简单,但是中间需要开好得多数组,太过于耗内存。先获取第一个值为关键字,让i指向第一个,j指向最后一个,先从最后一个找比key小的,j指向它,将它放在i指向的地方,然后i再向前走,直到找到比key大的,放在j指向的地方,就这样循环,直到i=j的时候,关闭循环。 $
2016-01-18 14:16:57 305
原创 uva 490
uva 490题挺简单的,就是最坑的是按照最长的字符串输出的,如果其他字符串太短,直接输出空格。#include #include int main(){ char ch[110][110]; int cnt=0,i,j,maxlen=0,len[110]; while(gets(ch[cnt])!=NULL){ len[cnt]=s
2016-01-18 10:51:47 286
原创 uva 673
uva 673这个题以前在数据结构书上面做过,需要使用栈,因为C语言创建一个栈有些麻烦,直接用的是c++的stack,它这个里面有一个期待匹配度,就是在栈顶的左括号是最期待匹配到右括号的,如果没有匹配到它想要的右括号,则直接错误。#include #include #include using namespace std;int main(){ int lim
2016-01-18 10:29:32 381
原创 uva 699
uva 699这个题应该是我在uva上面做的第一个关于二叉树的题,直接一把通过,挺爽的。思路就是用一个数组,在访问根节点时将数组的下标传为1000,然后每次访问左子树,将下标减去1。访问右子树,将数组下标加上1.#include #include #include typedef struct Tnode{ int value; struct Tnode
2016-01-18 10:28:07 227
原创 uva 548
uva 548这个题是一个关于利用二叉树的中序和后序来确定一棵树的题,先前全做的都是通过先序和中序来确定一颗二叉树,所以还想了好久。总体思路就是,现将二叉树的后序遍历的顺序直接反转,然后通过后序遍历反转以后的第一个数字就是根节点,下来是右子树,下来是左子树以此类推就可以了。#include #include #include typedef struct Tnode{
2016-01-18 10:20:59 218
原创 uva 10420
uva 10420#include #include char input[2001][80];int str_cmp(void* a,void* b){ return strcmp((char *)a,(char *)b);}void filter(char * input){ int len=strlen(input); int i,j=0
2016-01-18 10:16:21 262
原创 uva 10106
uva 10106#include #include void swap(char* input){ int len=strlen(input); int i; char temp; for(i=0;i temp=input[len-i-1]; input[len-i-1]=input[i];
2016-01-18 10:14:36 188
转载 uva 621
uva 621#include #include int main(){ char input[1000]; int cnt,i,len; scanf("%d\n",&cnt); for(i=0;i gets(input); len=strlen(input); if(len
2016-01-18 10:12:35 245
原创 uva 579
uva 579水题,不说了,直接上代码#include #include int main(){ float a,b,clock,minute,result; while(scanf("%f:%f\n",&a,&b)==2){ if(a==0 && b==0) break; clock=360*(
2016-01-18 10:11:00 227
原创 uva 575
uva 575#include #include #include int main(){ char input[35]; int i,len,sum; int s[31]; for(i=1;i s[i-1]=(int)pow(2,i)-1; while(gets(input)){ if(
2016-01-18 10:08:59 254
原创 uva 401
uva 401判断是否为回文串和镜像串,在判断是否为回文串的时候问题不大,主要是判断镜像串的时候看怎么将某个字符的镜像字符给取出来,我在这里是使用了一个将字母ascii码减去65,将数值ascii码减去49来实现的。#include #include int palindrome(char * input);int mirror(char * input);void f
2016-01-18 10:05:42 314
转载 uva 10815
uva 10815注意:主要的还是输入的问题,刚开始想的是直接读入字符串,但是又要将字符串分割成一个一个的单词,但是C语言没有这样的函数,所以后来在网上看到一个这样的输入方法,能巧妙的读入每一个字符,并将他们都转成小写,值得推荐阿。#include #include #include #include char word[50005][205];int cmp_st
2016-01-18 10:00:43 208
原创 uva 10055
uva 10055虽然是水题,但是如果使用abs来取绝对值进行运算的话,直接超时。#include int main(){ long int a,b,c; while(scanf("%ld%ld",&a,&b)==2){ c=a-b; if(c c=-c; printf("%ld
2016-01-18 09:55:07 301
转载 php实现归并排序
php实现归并排序:这个排序我看了很久,大多数代码是从百度上看到的,因为我也是一个php的菜菜的,不过觉得应该把思路写下来,一方面是自己要总结一下,一方面是自己把思路写出来如果有哪里不对的地方也希望有人能帮我指正一下。我感觉归并排序的归就在于递归,并就在于合并。归并排序是分治法的一个重要的体现,所以我们需要用分治法的思想去考虑归并排序。它拿到一个数组了以后,这个数组就好像一个棍子,先将
2016-01-17 22:33:13 1462
原创 php实现插入排序
php实现插入排序:先从第二个数开始,将第二个数和第一个数进行比较,如果第一个数比第二个数大的话,就将第一个数后移,这是第一趟。然后是第二趟,继续前面的。如果还是想不清楚,大家可以想想在玩扑克牌的时候,如果揭到了一张新牌是怎么把它放到正确的位置的,你肯定是先和最后的比较,然后再比较,直到有一个位置是比你正在比较的数小的时候,你就讲牌插在这个地方。$arr=array(1,2,3,5,2,3,9
2016-01-17 22:20:44 297
原创 php实现选择排序
php实现选择排序:这个也是一个O n平方的排序方法,它是一个选择过程,它先在数组中找到最大的数的下标,然后再将最大的数放在最后边(当然你也可以找到最小的数放在最前面),然后再找到第二大的数的下标,然后把它放在倒数第二的位置,就这样一直循环着走length趟。$arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4,587,93,47,59,8,2,6,83,4
2016-01-17 22:19:58 389
原创 php实现冒泡排序
php实现冒泡排序: 思想很简单,一共执行length-1趟,每一趟将数组从左到右每两个进行比较,大的数都向后移动,这样每次大的数都走到最右边$arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4,587,93,47,59,8,2,6,83,4,9,65,2,18,7);print_r($arr);echo "";function
2016-01-17 22:13:34 237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人