
算法与程序设计
文章平均质量分 70
HashCodeWithJava
这个作者很懒,什么都没留下…
展开
-
QuickSort和Hash Table在Sum题目中的应用.
今天遇到了一道难题.题目如下:SumTime limit:30 SecondsMemory limit:32768K BytesSubmitted:375Accepted:44SumMr. Jojer is given n numbers and an extra integer x, he wants to know whether there are two numbers whose s原创 2005-04-11 01:20:00 · 1893 阅读 · 2 评论 -
七个高效的编辑文本的习惯
Bram Moolenaar (这个是作者的签名,就不用翻译了吧) 如果你要花大量的时间键入文本, 写程序或编写HTML脚本, 你可以通过有效地使用一个好的编辑器来替你节省时间. 本文将引导你如果快速地完成你的编辑工作, 并且减少你的错误. 本文将以开放源码软件Vim(Vi IMproved)为例向你展示如何进行有效的编辑, 但这里提到的原则对其它的编辑器也是一样, 选择合适的编辑转载 2007-06-03 14:40:00 · 2164 阅读 · 0 评论 -
windbg the easy way
windbg the easy way (part1)Updated: 16.02.2006 Introduction Setup and configuration Setup Symbol server path CDB command line basics转载 2007-06-19 19:56:00 · 4279 阅读 · 0 评论 -
编写自己的DEBUG_PRIN函数
在C++中如果我们想编写自己的DEBUG答应函数,而并非使用普通的printf等等,可以通过Win32函数获取STD Handle来改变输出的格式以及颜色:void DEBUG_PRINT(WORD color, const wchar_t *fmt, ...){ va_list args; WCHAR buf[10240]; va_start(args, fmt);原创 2007-06-19 10:26:00 · 1786 阅读 · 0 评论 -
C++中的typename和class完全一样吗?
在模板中,定义模板类型template和template都是一样的。C++书上说,因为template里面的class和类定义class名字有重合,为了防止歧义,引入typename来取代template中的class。但是,typename并不完全等于class的作用。typename还有一个作用。下面以STL中的源码 在STL中的map源代码文件中,看到map的如下定义:原创 2007-09-21 20:12:00 · 2637 阅读 · 0 评论 -
关于Windows下C++开发的64位和32位通讯的问题
现在64位的系统已经十分普及了。在MSRA实习的时候,几乎所有的Server都是64位的Windows Server,而我自己开发使用的机器还是普通的32位系统。在处理网络通讯的时候,经常需要把整数类型的数据转换成二进制流传输,那么就会遇到32位机器和64位机器之间通讯的情况。 C++默认的int变量,都是根据具体编译环境来定,如果是32位下编译,就是4个字节宽度,如果是64位机器下就是8原创 2007-12-24 00:21:00 · 5262 阅读 · 2 评论 -
C Low-Level I/O functions
以前在看别人的很多代码时候,经常看到低级的C语言文件I/O函数。不过自己却从来还没有用到过低级的I/O函数。在纯C里面就f开头的stream用得多。这次要做SIDB在底层实现数据库存储文件,就得必须依靠低级文件I/O才能做了。因为低级文件I/O提供了某些功能,而高级文件I/O函数中没有。 这是我在网上找到为什么要使用低级IO的一些原因: 摘自: http://www.linuxtopi原创 2007-12-24 14:30:00 · 2382 阅读 · 0 评论 -
使用GSL来做实验
熟悉C++做开发的我们,对于matlab, mathematics等软件总是不太习惯。同时,很多research的实验程序需要进行efficiency的对比,所以大部分采用C++是比较合适的。但是诸如矩阵运算,least-squares,随机分布函数等常规数学工具库,matlab实现起来是很直接的。幸好,GNU有一个GSL(GUN Scientific Library)库,里面使用Pure原创 2008-05-22 09:29:00 · 1439 阅读 · 0 评论 -
SCU BSS讨论帖子
==============回复1================ 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发原创 2008-06-19 13:29:00 · 1667 阅读 · 8 评论 -
做一个专业的coder(1)
学习coding技能数十载,大部分局限于Windows与Java平台。趁现在有点时间,还是从专业点的LinuxC/C++开发以及环境学习。其实早在几年前,本人还是接触过Linux平台下的C/C++开发,不过始终没有做过什么正式项目,所以不足挂齿。最近一直在写一个开源的高维空间的近似搜索引擎,于是就拿这个开源项目作为练手的项目了。 首先汇报一下自己的开发平台:1) Cygw原创 2009-01-18 15:52:00 · 4225 阅读 · 0 评论 -
MATLAB生成多张figure以及自动保存
最近开始做毕业论文了。在整理以前做过的诸多论文实验的时候,发现以前用MATLAB写出来的代码是在太混乱了。算法程序,数据生成,以及图片绘画的.m文件都放在一个目录下。不要说拿给别人看,就连我自己时间久了都搞不清楚哪种图片是哪个MATLAB程序生成的。MATLAB没有VisualC++,Java那正规软件开发环境的工程概念,所以人工管理比较麻烦。一般外人拿到一个论文的实验程序,最简单的原创 2009-01-18 15:51:00 · 51907 阅读 · 5 评论 -
关于共同生存周期的对象与锁的讨论
之前与同学在谈一道smart pointer的面试题,在实现thread safe的时候发现mutex的destroy始终不好解决。问题在于,当你要destroy的mutex之前,必须先unlock这个mutex,而当你unlock这个mutex的同时,你的destroy部分可能不收保护了。与另外一个同学讨论该问题,告之是锁的设计问题。锁不应该和要锁的对象共享一个生存周期。但是,当我们要实现一原创 2010-03-09 11:48:00 · 2768 阅读 · 4 评论 -
TL 论坛上关于C++的错误处理的讨论
TL论坛总算回归一些实质性的贴子了。关于C++的错误处理,一直都是一个很有争议性的问题。一些C++大师在教科书上劝说大家应该用异常Exception在错误处理上。但是,很多实际工作的朋友,甚至Google公司都提倡“We do not use C++ Exception”(http://google-styleguide.googlecode.com/svn/trunk/cpp原创 2010-03-20 09:23:00 · 3380 阅读 · 2 评论 -
寻找Matlab的替代品
在数学计算上,特别是Numeric computation上,Matlab一直都是最常用的软件。但是,Matlab并非免费软件,即便是最便宜的student version也要$99。虽然在学校的电脑有Matlab,可毕竟不是自己的本本。如果想在家里用,就得登录到学校的机器。这样做开发和调试的时候就不方便了。Octave和SciLab是两个比较著名的数值计算软件,而且都是免费原创 2010-05-15 14:13:00 · 23696 阅读 · 5 评论 -
工欲善其事必先利其器–SimpleTestBed
最近在研究一个近似的优化算法。在做对比实验的时候,一共要跑6,7个不同的算法来比较。为了公平起见,每个算法需要在几个不同的参数环境下,在几批不同数据下,各自跑几十次,然后看看谁的评价效果最好。一共要跑大概上百次的算法运行。以前的做法是写一个脚本执行,或者说用JUnit之类的单元测试工具来自动化跑。但是,现在的问题是,这上百次的测试,需要花太多时间了。而实际上,我们系有很多空闲的服务器,而且都是8 core和16 core的机器。于是,现在就有两个问题了:原创 2011-03-11 23:19:00 · 4256 阅读 · 1 评论 -
通过MSXML来读写XML
以往在C#或者Java里面,都有很好的DOM来支持读写XML文档,在C++里面也有相应的不少。而MSXML是Windows下最常用的一个组件,以COM组件单独发布出来称为一个WINDOWS组件的。首先需要通过#import "msxml.dll"连链接MSXML的dll然后通过CoCreateInstance来创建COM接口:CComPtr pDoc;CComPtr elementRo原创 2007-07-03 11:05:00 · 2503 阅读 · 0 评论 -
Subversion安装手记
STEP 1:下载和安装 首先在Subversion的官方网站去下载windows安装包,最新版是1.3.1,可惜在项目树上只更新到了1.3.0的二进制包。下载后安装在本地机器上,这里注意的是最好将安装目录指定为纯英文名目录,安装在中文目录下天知道哪天会冒出一个让你想破头也想不出的错误来。下载TortoiseSVN进行本地安装,我安装的是最新的1.3.2 for svn 1.3.0,这是一个将转载 2007-03-31 16:17:00 · 1581 阅读 · 5 评论 -
Introduction to Fuzzy System
Introduction to Fuzzy System Writer :unkonwn , Publication Date: 2004-12-12 Fuzzy Logic - a powerful new technology Fuzzy Logic has emerged as a a profitable tool for the controlling of转载 2007-02-23 12:07:00 · 4124 阅读 · 0 评论 -
实现连续地图的一篇介绍文章
The Continuous World of Dungeon SiegeScott BilasGas Powered Games IntroductionChris Taylor’s Dungeon Siege is a fantasy action game by Gas Powered Games that shipped in spring 2002 after four years of原创 2005-10-14 08:53:00 · 3452 阅读 · 0 评论 -
关于Java技术和编译技术的网站收藏
一篇关于使用Java作为中间语言的编译器的实现文章: Java as an Intermediate Languagehttp://www.cs.cmu.edu/~scandal/html-papers/javanesl/index.html Compiling the Java Programming Language http://www.bearcave.com/software/java原创 2005-10-19 14:14:00 · 2087 阅读 · 1 评论 -
转贴:论函数调用约定
论函数调用约定 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎转载 2005-06-11 11:28:00 · 2378 阅读 · 0 评论 -
简单的PCM类型的WAVE的文件格式
WAVE PCM soundfile format The WAVE file format is a subset of Microsofts RIFF specification for the storage of multimedia files. A RIFF file starts out with a file header followed by a sequence of da原创 2005-11-04 10:58:00 · 4688 阅读 · 1 评论 -
Symbian Series60上实现混音的办法
在Symbian 6.1的CMdaAudioPlayer是无法实现混音的。如果你当前正在播放一段音乐,那么此时如果再播放另外一段音乐,那么之前的音乐就会被迫停止了。那么Symbian Series60上就无法实现混音了吗?不是的,我们看到很多游戏里面都实现了混音,那么他们是怎么做的呢? 显然,我们只能从底层下手。Symbian提供了一个直接播放PCM音频编码的接口,CMdaAudioOutp原创 2005-11-24 00:18:00 · 2247 阅读 · 1 评论 -
Java bytecode assembler : jasmin
如果要自己来写Java的编译器,我是指出编译出来的目标程序文件是Java的class执行文件.那么这里有个很好的工具: jasmin. 这个工具是一个Java的汇编编译器.能够将类式汇编的bytecode指令,翻译成最终的Java的class文件. jasmin本身也是Java来写.不过和其它很多Java bytecode Assembler比起来,感觉它的优势是最大的,最广泛使用的.原创 2005-06-10 11:41:00 · 3854 阅读 · 0 评论 -
有些东西是学校里的学生学不到的
前段时间参加ACM大学生程序设计大赛,本来抱着拿奖的心态去参加的,结果没想到,自己连三等奖都没拿到.几个低年纪的学生占据了前面的一二等奖.而且,还有高中生呢.当然,别人准备得远比我充分,他们做过的练习题比我两个账号的加起来的十倍还多.这方面,我连资格都没有和人家比ACM程序设计竞赛.不过我还是一直在想,我做程序设计,软件开发也快10年了吧,如果真的连很多刚学程序设计2年的学生都比不过,那我不原创 2005-06-13 00:45:00 · 3504 阅读 · 13 评论 -
深入浅出VA函数(转贴)
深入浅出VA函数(转贴)本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施。VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程转载 2005-12-28 13:39:00 · 2145 阅读 · 0 评论 -
自己写的一个JSP上传文件和下载文件的JavaBean
这个周末终于可以好好锻炼一下我的IBM ThinkPad T43了。今天看了一些关于JSP,Servlet方面的资料,写了简单的两个JavaBean。一个是UpLoad,一个是DownLoad。写得很简单,没有使用其它任何组件,自己做的。大家可以来看看。1.RunningUpLoader上传Bean 首先是RunningUpLoader.java,代码有些多,因为我是自己来解析输入流原创 2006-04-16 21:15:00 · 5779 阅读 · 3 评论 -
基于灰度颜色个数的视频截图选取
前几天在帮师兄做一个视频截图的模块,采用了DirectShow的接口来访问视频文件。开发工具使用的是Visual C++ 2005 Express 和Visual C# 2005 Express,VC++写的一个封装了对DirectShow的接口访问的DLL,然后在C#做的界面程序里面调用。 1. 关于DirectShow的视频截图方法DirectShow以前是属于DirectX原创 2006-09-08 23:42:00 · 2480 阅读 · 0 评论 -
一个简单的子集产生算法
在做关联规则挖掘模块的时候,由频繁项集产生关联规则,需要使用到子集产生的算法。比如:char[] A={a,b,c,d,...},集合A中,产生所有A的子集{a},{b},{a,b},{a,b,c}...这些。1. 我最初的实现方法 在OpenMiner的关联模块实现之处,我考虑的方法和人们思考产生子集的方法类型,既是先产生所有的单个元素的原创 2006-05-22 01:08:00 · 2049 阅读 · 4 评论 -
MIT的算法导论课程资料
MIT的算法导论第一节课上,教授就说得了算法的performance的重要性,并非简单的只是快一点,慢一点,而是整个解决方案可行与不可行的差别。作为一个学生来说,在《算法导论》和《计算机程序设计艺术》两本最经典书来说,应该选择《算法导论》来读,这样读起来更加容易。如果我还能回到刚入大学的时候,我一定会在大一或者大二的时候,花一年好好读完这本书,然后再花一年的时间去参加ACM的相关比赛和培训。原创 2006-06-03 12:37:00 · 14020 阅读 · 11 评论 -
使用python为Java项目开发一个预编译脚本
早就听说python是一个十分不错的脚本语言,语法简洁而且开发效率很高。在从http://www.python.org下载了最新的windows版本的python解释器后,我又从eclipse的插件网下了pydev这个支持Python在Eclipse开发的插件。Python虽然是unix/linux下的东西,但是由于其执行和编写都很简单,所以在时常工作中能够快速解决一些小问题。同时,对于以后原创 2006-06-29 00:31:00 · 3509 阅读 · 0 评论 -
ACM程序设计大赛校内选拔赛初赛的一道题目:Spanning trees in a fan
DescriptionA fan of order n is a graph on the vertices { 0, 1, ..., n } with 2n-1 edges defined as follows:Vertex 0 is connected by an edge to each of the other n vertices, and vertex k is connected原创 2006-07-09 15:24:00 · 3104 阅读 · 5 评论 -
UCLA的一篇关于如何使用Linear Programming的文章
转帖这个PDF文件:http://www.ee.ucla.edu/ee236a/lectures/lp.pdf里面很多用法,以前还没想到,特别是对Convex Optimization的变型,很巧妙。再补充一篇MIT的教程资料,里面讲解了如何把各种具体情况form原创 2011-09-04 02:02:06 · 3876 阅读 · 0 评论