(2007-01-31) (阅读次数: 3290)
尽管数据结构书上有最短路径的经典算法,可中文书籍和期刊上却鲜见求解前K条最短路径算法的文章,于是自以为终于找到了一个可以自主设计的算法,思索多日,辛苦之中未有良策,只好作罢。后来偶尔搜索到一篇英语论文,才发现这个问题在70年代就已经有了高效算法,并且至今无人超越。欣喜之余仔细品读,才知此算法的复杂程度已远远超出了我当时的想象,难怪诸多教科书不予引入。另外,值得一提的是,我在国内期刊上搜索到了唯一一篇相关的论文,是位博士在一名牌大学学报上发表的文章,尽管行文叙述比较粗糙也没有引用任何外文论文,却和前人算法如出一辙,不知是不是巧合呢?但无论如何,他的论文使我可以更加方便地对比和理解这个算法。
(2007-01-22) (阅读次数: 1498)
STL中任何容器都可以使用迭代器进行元素的遍历,当需要在遍历中删除某些元素时,容器中元素的布局(位置或者排序)会随之改变,当前迭代器所指示的元素也会发生变化,这时继续递增或者递减迭代器进行后续元素的遍历时就要特别小心。容器的元素删除方法很大程度上依赖于操作系统上STL的实现版本,不同的系统和STL版本均有不同的定义。详见正文分析。
(2007-01-21) (阅读次数: 2443)
Here, I compiled some rules when using virtual member functions.
(2007-01-18) (阅读次数: 1660)
将成员函数指针直接强制转换成void*指针是不行的,你需要使用一些技巧。还是那句话“指针操作,无所不能”。
(2007-01-18) (阅读次数: 1780)
最近常有人问及排列组合问题的程序实现方案,思考良久,翻了翻堆在书架上大块头的算法书,心有所悟,遂总结于此。
(2007-01-17) (阅读次数: 1726)
涉及优化问题,一般都离不开动态规划(dynamic programming),然而因为在程序算法中动态规划属于最难理解的算法之列,这也使得许多人对此望而却步。本文从程序设计的角度尽可能通俗地对此算法进行了阐述,以期可以剖析出动态规划的奥妙所在,并从多个角度对其用途进行了举例描述。
(2007-01-11) (阅读次数: 3986)
本文属于C++内存管理系列之开始篇,介绍C++中用来开辟和释放内存的new和delete操作符。
(2006-12-02) (阅读次数: 1609)
在多位好友的鼓励和支持下,终于利用断断续续的业余时间完成了多维拼音输入法的界面库,加之曾经完成的拼音语言模型库,估计年底前可以出来Beta版本。我在此输入法中加入一些有趣的特性,希望能打破传统输入法的套路,毕竟我是从事语言处理工作的,让模型贴近人类使用语言的思维方式是我最终的目标。
(2006-11-21) (阅读次数: 1311)
程序设计中递归不失为一种优雅的方法,可以用简单的代码解决看似复杂的问题。本文阐述了如何使用递归程序来解决一系列复杂的问题,并对递归程序的执行原理以及通用求解问题的方法作出了分析
(2006-11-21) (阅读次数: 1293)
程序设计中递归不失为一种优雅的方法,可以用简洁的代码解决复杂的问题,本文阐述了如何使用递归程序来解决一系列复杂的问题,并对递归程序的执行原理及其求解问题的通用方法作出了分析。
(2006-10-31) (阅读次数: 1898)
留意过bbs上合集的同学可能会发现,一个火的帖子,跟者云集,并且跟贴的话题频频变化,但是一般最后会回到最初的主题上来,看看水木上主题丰富热火朝天的WL板块就知道。虽然经常浏览合集,但是起初这个现象我倒没有留心,偶尔一次老婆在旁边嘀咕,说这种五花八门的回帖要是有个程序分析一下输出一个图像,就像google trends一样,那感情有趣。
(2006-10-25) (阅读次数: 2707)
光标跟随是输入法中最常见的特性之一,window平台下通过调用IME的API可以获取各种环境下(如word)的文本插入符号(或者称caret,不是cursor)的坐标。我曾经试图使用GetCaretPos的API(非IME API)来达到此目的,然而却发现在word这样的程序中获取不到真实的坐标位置,因为诸如word这样的程序不是使用的标准Edit控件,所以GetCaretPos无能为力。但是,有些情况下又必须使用GetCaretPos才能获取正确的光标位置,我见过的如UtraEdit程序。