摘要: 说起排序,大多数人在实际项目中很少自己去写一个排序,一般来说,qsort一行话就可以了。我也很少在实际项目中用到过基数排序,最近,写了一篇博客文章叫做: 字符串之全文索引 ,这篇文章的下一篇文章 要用到一个倍增算法。这个倍增算法,就可以非常巧妙的运用基数排序。作为那篇文章的一个铺垫,我专门写了一篇基数排序的文章。这篇文章里面的基数排序肯定是一个变形。 大多数网上 或者 书上的基数排序都是从下面的例子开始的: 排序下面的数列: 73 22 93 43 55 14 28 65 39 81 然后对这些数字,用个位数进行排序: 0 ...阅读全文
posted @ 2011-12-20 00:28 暮夏 阅读(35) 评论(0) 编辑
摘要: 我是在Yii的官方wiki上看到这篇文章的。读的第一遍觉得很不错,还有一种想翻译出来的冲动。虽然,本人英文很烂,但是毕竟写了这样多年的代码,估计大概的意思是能有的吧。英文原文:http://www.yiiframework.com/wiki/268/how-to-learn-yii/ 下面是针对Yii的初学者的一个一步一步如何学习Yii的列表。这个列表列出了一些文档,教程,希望你能够阅读,这些文档,教程有助于我们理解Yii这个框架。 1. 学习PHP。当然,你需要先学习PHP编程。w3cschool 上有一个很好的教程,教程分成 语言基础 高级功能 数据库操作三个部分。有一个小技巧,...阅读全文
posted @ 2011-12-09 23:13 暮夏 阅读(276) 评论(1) 编辑
摘要: 今天突然发现网站挂掉了。原因就是机房意外的重启了我的机器,因为apache 要输入ssl密码才能启动,所以就启动不起来。 用下面的方法就可以避免这个问题: ee /usr/local/etc/apache22/httpd.conf 找到: <IfModule ssl_module> 加入这样一行: SSLPassPhraseDialog exec:/usr/local/e...阅读全文
posted @ 2011-11-30 10:12 暮夏 阅读(98) 评论(0) 编辑
摘要: 字符串,我现在正在写的就是一个字符串。我们的源代码就是一个字符串,计算机科学里面,一大部分问题都是字符串处理的问题。比如,编译器,就是一个字符串处理程序。还有,搜索引擎,也在处理一个字符串问题。数据库,最难处理的还是字符串部分。索引,一般是一种预处理的中间程序。在我们写代码的时候,往往需要对一个对象进行预处理。这个预处理时间可能比较长,但是,处理完了以后,就能很快的多次的在上面进行查询。比如,你要在一组数里面进行查找,可能先要进行排序,这样速度就会快一些, 排序可以看做是建立索引的一个过程。 字符串的全文索引,怎么样才能非常的省空间,查找速度也还可以,我这里介绍一种数据结构,叫做后缀数组。 .阅读全文
posted @ 2011-11-27 16:55 暮夏 阅读(220) 评论(1) 编辑
摘要: Wallpaperfox contain many anime wallpapers, such as Fairy Tailwallpapers, bleach wallpapers, naruto wallpapers, one piece wallpapers, and so on. October is a busy season, the anime wallpaper site posts a series of 2011 calendar wallpapers, divided into two topics, one topic is about Halloween, anoth阅读全文
posted @ 2011-10-11 11:09 暮夏 阅读(58) 评论(0) 编辑
摘要: 最近,和一个网友交流的时候,给我提了一个非常奇怪的问题。那就是,在一个运算中,加了一个引用之后,发现性能慢了一万倍。在我的脑海里面,引用是一个非常容易出错的问题,特别是PHP里面的引用,有非常多的陷阱。因为,以前专门研究过这一块PHP的源代码,所以,我可以比较清晰的解析引用到底是怎么一回事,希望,读了我这篇博客的PHP开发者,能彻底理解这个问题。如果,有任何疑问,或者有一些你想了解的问题,可以给我留言。 先来看一段代码: class RefferTest{ private $data; private $testKey; function __construct() { $key = &qu阅读全文
posted @ 2011-04-28 21:53 暮夏 阅读(545) 评论(8) 编辑
摘要: 最近一段时间,在研究PHP的共享内存。于是,我想尝试一下共享内存和普通文件相比,能提高多少的性能。本来想简单的把纯真IP数据库导入到共享内存然后查询。但是,后来发现这个数据库设计过于复杂,查询IP速度非常的慢,于是我对这个数据库的结构重新进行了设计。头部:4 * 4 个字节。就记录一个总数//总数|0|0|0索引区: (区域ID的格式:前 24 个bit是区域在文件中的的offset,后8个bit是长度,这样区域的名称长度不能超过255个字节)//start|end|区域ID1|区域ID2//start|end|区域ID1|区域ID2数据区:简单的把所有区域的名称写在这块区域(过滤掉重复的数据阅读全文
posted @ 2011-03-07 14:03 暮夏 阅读(380) 评论(0) 编辑
摘要: 今天有人在PHP的群里面问这样一个问题:<?xml version="1.0" coding="utf-8"?><country><city>北京</city><city>香港</city><city>上海</city></country>如果在香港前面加上一个<city>杭州</city>。今天请假在家,就花了几分钟,解决了这个问题。<?php$xml=<<<XML<?xmlversion=&阅读全文
posted @ 2011-02-28 21:18 暮夏 阅读(256) 评论(0) 编辑
摘要: 这是一个非常经典的问题,同时,也是一个很难解决的问题。经典是因为,这个问题非常常见,而且有很多解决方案。难以解决是因为,存在多音字。可以发现很多股票软件都有这问题,比如zgyh 出来的不是中国银行,而是找不到,这是因为,中国银行的 “行” 查出来读的是 "xing" 。我篇文章我只是提供了一个原始的转换方法,就是查表。和你以前看过的算法可能不一样的是,我加了一个二分查找,我看到的一个开源的解决方案是顺序查找的。 关于,多音字问题,我只有一个小规模的多音字表,从所有股票名称里面纠正过来的。解决方案是这样的:在查找拼音的时候,查找一下这个字是否在多音字表里面,如果是,那么查找前后组成的词,来决定读阅读全文
posted @ 2011-01-26 19:29 暮夏 阅读(437) 评论(1) 编辑
摘要: 本文通过分析C++编译器生成的汇编代码,分析多态的机制。并实现了一个C语言版本。 在编译性语言里面,多态真的是一个伟大的发明。它可以现在写好代码,编译好,并且可以调用未来的代码。这多少有了点动态的感觉。很多人,也在脚本语言里面抱怨,为什么不提供多态的功能啊。脚本语言里面,一个函数参数,可以传递任何类型,甚至可以通过函数名的字符串调用函数,这样多态的作用就小了很多。对于面向对象来说,最重要的两个概念莫过于 继承 和 多态。继承可以减少代码重复,多态可以减少大量的条件判断,if else switch如果在代码中太多,你的程序应该不怎么面向对象。 废话不说了,先给一个用于分析的程序:代码 Code阅读全文
posted @ 2011-01-20 14:01 暮夏 阅读(216) 评论(0) 编辑
摘要: 我们经常会看到 在说一个对象的man page 的时候,会有这样的格式:mmap(2)shm_open(3)这个后面的数字是什么意思呢,通过 man man 命令就可以知道,这个是数字是,section大多数类unix 操作系统,都采用相同的section 的约定:Section 1 user commands (introduction) Section 2 system calls (introduction) Section 3 library functions (introduction) Section 4 special files (introduction) Section 阅读全文
posted @ 2011-01-20 11:48 暮夏 阅读(383) 评论(1) 编辑
摘要: 在看我这篇文章之前,先看看关于KDJ的相关资料和背景。下面的链接可以参考。http://www.shenmeshi.com/Business/Business_20070523005553.html简单的说,KDJ 有四个要计算的东西。RSV ,K, D, JRSV: 中文翻译过来就是 未成熟值,这个值实际上也不神秘。它其实就是著名的威廉指数。计算公式如下:设:周期为 PeriodRSV[i] = (close[i] - low[i, Period]) / (high[i, Period] - low[i, Period])这个计算也是这个指标的核心部分,K D J 这三个参数都依赖与 RSV阅读全文
posted @ 2010-12-27 21:48 暮夏 阅读(199) 评论(0) 编辑
摘要: 很多时候,一个字符串,你很难检测它的编码。是理论上就不行,比如一个字符串,你把他当作一个utf8的编码是一个汉字串,把他当成gb2312 还是一个汉字出串,而且在字库里面都存在。所以,我们检查也只能是说,大部分能检测出来。 我遇到的问题是这样的,百度搜索引擎的中关键字的问题。http://www.baidu.com/s?tn=159sifu_pg&wd=%E8%83%8E%E6%95%99%E9%9F%B3%E4%B9%90%E6%AC%A3%E8%B5%8F 在大多数情况下,百度默认编码是gb2312的,如果是utf8会加一个ie字段。但是比如在好hao123里面搜索的,或者其他地方搜索然后阅读全文
posted @ 2010-12-20 18:46 暮夏 阅读(326) 评论(0) 编辑
摘要: 编码问题的确非常的棘手。很多时候,你一不小心,在某个阶段没有正确的转码,结果造成存储下来的文件 或者 保存进入数据库的字段是乱码。如果这个字段是非常重要的信息,你可能认为,你已经无法恢复这些信息了,其实,在大多数情况下面这个是能够恢复的,你要分析你转码的每个过程,确定出差错的位置,然后进行这个编码的逆转。这里我只举一个我实际中遇到的一个例子。这个例子的情况是这样的,我在cookie里面保存了一个username字段,写cookie是通过PHP程序写的,这个PHP程序的编码是gbk的。另外一个统计系统,这个统计系统,通过Javascript 读取cookie信息,然后通过url编码这些信息,发送阅读全文
posted @ 2010-12-17 19:15 暮夏 阅读(204) 评论(0) 编辑
摘要: 钻研PHP很多年,想总结一下自己,但是不知从何说起,那就先谈一些我知道的PHP的用法,这些用法很多有多年的工作经验的人可能都不知道。实际中可能用不到,但是用到了,就是体现你实力的时候。现在问题是这样的,一个用户,用的是windows 的虚拟服务器,然后呢,当打开一个页面的时候,要并行的抓取大概10个网站的标题显示出来。这样的用法很少见,但是,有需求,就得解决。串行是一个解决方案,但是要等待的时间过长。于是我想到用curl 去并行抓取。不知道的可以参考这篇文章PHP多线程(四) 内部多线程 但是,最后发现,那个虚拟服务器上没有curl,这真是让人纠结。于是,我决定改变思路,用单个线程也实现多个线阅读全文
posted @ 2010-12-15 14:03 暮夏 阅读(562) 评论(0) 编辑
摘要: 周末的时候看到腾讯的空间里面写日志的时候能自动提取关键字,感觉这个功能非常的好,于是我自己准备也写一个。因为,提取关键字,肯定要涉及分词,现在的分词算法,最好的估计是统计算法,但是实现稍微复杂一点,用PHP的话,性能往往也不够。于是,我一切从简,争取星期天一天能写完这个工具。 我翻了一下最简单的分词,好像就是向前最大匹配。而且如果字典好的话,据说准确率还挺高的。当然,我没有什么好字典,从中科院的分词软件里面,拿了一本字典。大概有10万的词汇量。当然,你可以用其他的字典,但是一定要有词频。 当然,只是简单的分词,算法没有什么好说的,我就说说我写的时候遇到的问题。1. 字典管理。本来我想把字典先读阅读全文
posted @ 2010-12-06 14:36 暮夏 阅读(1250) 评论(2) 编辑
摘要: 今天有个人问我如何判断一棵树是完全二叉树。我一下子想不出怎么解决这个问题,按照定义,严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念很好理解,就是一棵树,深度为k,并且没有空位。首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有的编号都和满二叉树对应,那么这棵树是完全二叉树。 概...阅读全文
posted @ 2010-11-11 20:33 暮夏 阅读(407) 评论(1) 编辑
摘要: 刚才我们网站的后台看到,IE6 依然有62%的客户在使用,IE7 有10%, IE8有23%。看来重点还是要把IE6给调整正确。虽然google 说不支持IE6了,可是中国有中国的国情。顺便说一句,.NET 只有在不到50%的机器上安装,至少我们的客户是这样的。 一般来说IE6 和 IE7 是相似的。IE8 和 firefox 是相似的。可以先把 IE8 和 firefox 调整好。然后,尝试调整...阅读全文
posted @ 2010-11-08 20:23 暮夏 阅读(283) 评论(3) 编辑
摘要: 最近大家可好。中国又内讧了。最近听说腾讯经常扫描用户电脑,获取用户安装软件的信息。所以,我就开始想想腾讯是怎么实现的。按照360的说法,腾讯是通过扫描桌面快捷方式的方式来实现的。我觉得腾讯很脑残,为什么要扫描桌面呢?直接用我的方法,保证不会扫描硬盘也能获取安装列表。开个玩笑,其实,聪明的人都知道360想干什么。还有说明一下,我对C#不是很熟悉,只是稍微了解一点。本来想用C++写的,但是,博客园的同...阅读全文
posted @ 2010-11-04 23:06 暮夏 阅读(283) 评论(0) 编辑
摘要: 写PHP也写了4,5年了,最近一年,很少会遇到在PHP 方面让我很困惑的问题,今天,就让我遇到了一个。不知道大家有没有遇到过这样的问题,在文件上传的时候,用 move_uploaded_file 这个函数不能移动文件,而用copy 或者 rename 确是可以的。我也一直很困惑。在文档上,说的比较模糊,就是 move_uploaded_file 这个函数,加了一步检查,检查这个文件是否是有 HTT...阅读全文
posted @ 2010-09-03 19:38 暮夏 阅读(255) 评论(0) 编辑