插入排序及其复杂度分析
摘要:- 问题:给定一个整数序列,按照从小到大的顺序(确切地说,是非递减的顺序)排列序列中的整数。- 输入:一个整数序列。- 输出:整数序列,其中的整数升序排列。插入排序的思想:插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有...
阅读全文
选择排序及其复杂度分析
摘要:- 问题:给定一个整数序列,按照从小到大的顺序(确切地说,是非递减的顺序)排列序列中的整数。- 输入:一个整数序列。- 输出:整数序列,其中的整数升序排列。选择排序的思想:选出最小的一个和第一个位置交换,选出其次小的和第二个位置交换 ……直到从第N个和第N-1个元素中选出最小的放在第N-1个位置。选...
阅读全文
冒泡排序及其复杂度分析
摘要:- 问题:给定一个整数序列,按照从小到大的顺序(确切地说,是非递减的顺序)排列序列中的整数。- 输入:一个整数序列。- 输出:整数序列,其中的整数升序排列。因为谭浩强的C语言教材,大家最熟悉的可能就是冒泡排序。下面是冒泡排序的一个C语言实现,`a`是数组首地址, `size` 是数组元素的个数。冒泡...
阅读全文
整数的二进制表示中包含多少个1
摘要:- 问题:给定一个整数,如何判断该整数的二进制表示里有多少个1。- 现实用途:应该可以用于数据的校验。解法(c++): #include #include using namespace std; // 求解x的二进制表示里有多少个1的算法。 // x = x & ...
阅读全文
是否使用TDD(测试驱动开发)进行UI开发
摘要:## 问题[StackOverflow](http://stackoverflow.com)上有一则[是否使用TDD(测试驱动开发)进行UI开发](http://stackoverflow.com/questions/362671/does-tdd-apply-well-when-developin...
阅读全文
Getting Real 摘记
摘要:第二章 起始点一个很好的做软件的方式就是一开始用它来解决你自己的问题。由于你自己变成了软件的目标受众因此你会知道什么是重要的什么不是。这样做下去将会是推出一个突破性产品的伟大起始点。手头有多少钱就先动起来做多少事。用心想想决定什么是你最基本需要的,什么是可以先舍弃不做的。什么事是你可以三个人就搞定而...
阅读全文
《程序员修炼之道》读书心得
摘要:2007-04-06这本书是一个编程很厉害的师弟从图书馆借来的,原名直译为《注重实效的程序员》。我每天到实验 室比较早,就翻开这本书看几页。十几天下来,把这本书算是粗粗看完了。其间没有心得,便记录下来。但由于功底有限,对这本书中的一些地方还不甚理解。等以 后功力提高后,再细读一遍吧。1 要经常性地修...
阅读全文
二分图匹配初步
摘要:什么是二分图若图G的结点集V(G)可以分成两个非空子集 V1和V2,并且图G的任意边xy关联的两个结点 x、y分别属于这两个子集,则图G是二分图。所有的树都是二分图。从树中任取一个结点为树根,着上白色,然后将根的所有孩子着上黑色,将下一层再着白色,继续此过程直到所有结点都着色。用着色法或标记法可以检...
阅读全文
动态规划初步
摘要:初步了解动态规划动态规划是一种数学规划方法,用于解决具有overlapping subproblems 和 optimal substructure属性的问题,能比天真的算法节省很多时间。首先讲一下什么是overlapping subproblems。它是指可以被分解成若干次重用的子问题的那类问题。...
阅读全文
一些排日程的经典方法
摘要:·甘特图Gantt图(也称横道图)是安排工程进度计划的简单工具,如下图。在Gantt图中,每项任务的开始时间和结束时间先均用空心小三角形表示,两者用横线相连,令人一目了然。当活动开始时,将横线左面的小三角形涂黑,当活动结束时,再把横线右边的小三角形涂黑。上图中,分析工作已经完成;测试计划、总体设计和...
阅读全文
petri网初步
摘要:历史:Petri网的概念是德国的Carl Adam Petri早在1962年提出来的。他在他的论文里提出了一个新的信息流模型,这个模型基于系统各部分的异步并发的操作,并把各部分之间的关系用网状的图来描述。Petri net graph:Petri网用于描述和分析系统中的控制流和信息流,尤其是那些有异...
阅读全文
函数的调用惯例
摘要:TAG: 调用惯例, cdecl, stdcall, fastcall, thiscallDATE: 2013-08-06什么是调用惯例调用惯例(Calling Conventions)指计算机程序执行时调用函数或过程的一些约定,包括:函数的参数是通过栈还是寄存器传递?如果通过栈传递,顺序是怎样的,是从左至右入栈还是相反。谁负责清理栈,是调用者还是被调用者?从清理栈的角度来讲,调用惯例可分为三类:函数的调用者清理,函数清理,混合清理(有时由调用者清理,有时由函数自己清理)。调用者清理著名的cdecl就是由函数调用者清理栈的调用惯例。cdecl是基于c语言的调用惯例,也是x86机器上大多数C编译
阅读全文
Google编码规范
摘要:google的编码规范,包括 c/c++, python, javascript, html/css, objectiveC等。
阅读全文