
算法
小灰马
爱生活,爱读书,爱挑战!
展开
-
迷宫求解
前言最近复习一下数据结构,发现一个有趣的迷宫求解问题,当时就没去做,现在来玩玩这个问题。迷宫问题的简单描述:给定一个迷宫,给定一个起点和终点,找到从起点到终点的一条可行路径。《数据结构(C语言版)》书中的图如下:解决思路:1.把上面的迷宫转换为一个二维矩阵,用0表示空白,1表示障碍。2.从起点开始,用逐步探测的方法寻找路径 从当前的位置开始探测,按顺时针原创 2013-06-08 19:37:43 · 1356 阅读 · 0 评论 -
字母大小写转换
好久没写博了,准备继续搞起。今天先写个简单的,字母的大小写转换。问题1:给定一个字符串“asDFghj”,把它全部转为大写字母或者小写字母。这问题是不是太简单了点,现有的各种函数库里面都有什么strtoupper()、strtolower()之类的转换函数。自己手写一个呢?这让我想起以前上机实验写C程序的时候做过这个题。好吧,先写下当时我是怎么做的: void s原创 2013-07-19 15:04:05 · 1134 阅读 · 0 评论 -
新浪mid与id互转
前言: 工作需要,顺带研究下,参考资料 新浪微博地址url字符与mid的相互转换算法及原理 由于原文代码看起来有点挫,所以决定把他代码拿过来改改,自己写一个。 新浪微博链接格式为:http://weibo.com/用户id/mid?其它参数,例如 http://weibo.com/1646512101/A3m18DfFN?mod=weibotime 而新浪的api原创 2013-08-05 19:17:25 · 1274 阅读 · 0 评论 -
计算两路径的相对路径
需求:给定绝对路径A和绝对路径B,计算B相对于A的路径,例如A=/srv/test/ , B=/srv/foo/bar ,则结果为 ../foo/bar 。思路:把A和B中具有相同的前面部分全部去掉,A中剩下的部分,有几个目录就替换为几个 ../ ,再把结果拼上 B的剩余部分就是结果。从PHP手册看到有人写的一个函数:<?php function relativePath($f原创 2013-08-06 13:09:51 · 1009 阅读 · 1 评论 -
红黑树源码实现
继上一篇《思考红黑树》 自己亲自动手把红黑树实现一遍,发现理论成功了要转换为实际代码还是有点难度的,困难点主要在于一些边界点的确定。还是需要进一步提高自己的C功力。直接贴代码吧,有需要的拿去用,我自己也留着以后拿来玩玩。这份代码肯定是需要根据实际环境进行修改的,前两天大概扫了一下 《Linux内核中的红黑树》里面的代码,发现自己写的代码水平跟大神写的还是有些差距啊...加油吧。原创 2013-08-24 12:22:50 · 1203 阅读 · 0 评论 -
思考红黑树
前言 网上讲红黑树的文章比较多,参考 维基百科--红黑树 《教你彻底理解红黑树》 等等。大概扫了扫,在讲红黑树的插入和删除操作的时候,主要集中精力在讲插入和删除的各种复杂情况,然后再画几个图出来,作者就以为讲得很清楚很牛逼了。其实我觉得,讲得非常烂,算法最重要的是它背后的思想,或者说它背后一些规律。前面提到的两篇文章都在讲“这个算法是什么”,但是“这个算法为什么是这样”压根就没原创 2013-08-22 21:00:53 · 2553 阅读 · 0 评论