- 博客(11)
- 收藏
- 关注
原创 简单的“结合”,致命的失误。
<br />在写个简单的数组插入排序,涉及到数组元素赋值。逻辑是元素后移,将前一个元素值赋值给下一个。于是写下了与下面例子相近的代码:<br /> <br />“<br />char ap[] = "fdpasb";<br /> <br />int i = 1;<br />ap[i] = ap[--i];<br /> <br />”<br /> <br />运行后发现赋值没有起到作用,数组未有任何变化。搞了半天没思路,以为是编译器优化的原因,于是硬着头皮看其汇编代码:<br /> <br />“<br />
2010-09-15 11:35:00
728
原创 系统调用与过程调用
程序中执行系统调用或过程(函数)调用,虽然都是对某种功能或服务的需求,但两者从调用形式到具体实现都有很大区别。(1)调用形式不同。过程(函数)使用一般调用指令,其转向地址是固定不变的,包含在跳转语句中;但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。--->过程函数在编译成程序后,代码的逻辑地址是固定不变的。系统调用在程序中并不会产生函数代码,所以也没有入口点一说。(2)被调用代码的位置不同。过程(函数)调用是一种静态调用,调用者和被调用代码在同一程序内,经过连接编辑后作为目标代码的一部份。
2010-06-12 11:35:00
16829
2
原创 stl string的COW问题
在网上反复看到一些文章关于STL string的COW(copy_on_write)问题,当初为了效率的问题极可能采取这种方式。但是在最新的vs2008上实验后,发现事实并不是这样,或者已经改版了。vs出现intellisense问题,很是让人头疼..暂时查看不了basic_string的源代码,但是简单的实验就可以证明。void String_Test(){ string k =
2009-07-28 11:20:00
1806
原创 ATL COM初入有感
好久没写了,之前折腾过一阵算法,在矩阵连乘那被block住后,事儿多的要死,就没碰了。最近项目要做COM,都快愁死了...花了大半年从C++转到C#,现在又要转回去...很不习惯,垃圾回收机制,智能检索,debug信息,可爱的东东~~88啦 OK,言归正传。ATL建工程,add method, 建新simple object的难度不大。原理却很费劲。敬重的杨老师有句经典名言:“COM 组件永
2008-10-09 20:21:00
581
原创 Algorithm--让人困惑的快速排序(划分算法) 续
世上有句话叫什么来着,世上没有跨不过去的坎儿!!这里要感谢张莉同志(算法一作者)的PPT图形。谁的东西也不好使,按着图一步一步写就OK了。 先考虑理想写出来,然后再根据特殊情况添加限制语句。做完后觉得很简单.............................TDD........ class QuickSort ...{ private Listin
2008-04-15 16:01:00
590
原创 Algorithm--让人困惑的快速排序(划分算法)
快速排序这篇理解的难点和重点已经不是递归,而是划分算法的实现。当然,将划分点从数组中提出,并作为下一个递归参数的思想,也是非常精妙的。乍一看划分算法,说实话,迷迷糊糊,没有什么理解上的头绪可言,也就是说就凭自己的推理能力,想不到为什么这么做,就像公式一样,遵从就行了。理解嘛,我花了好几天依然乱的跟麻一样,后来索性记住方法就行了,就不想公式是怎么来的了。然后写出了个四不像的东西,他跟原正
2008-04-15 14:55:00
665
原创 Algorithm--二路合并排序
这个排序算法困扰我了很久,即使是现在,仍感觉还有点茫茫然...总之有一点感悟:对于递归而言,不可以过分地钻入细节,不然会被绕晕,要以整体和函数的已实现性来解决问题。之前看过别人写的合并排序,用一个临时List 来存入已分的两有序组比较后的结果。我试过用这种方法,但是很晕,而且结果不正确,遇到很多很多很多问题。最终还是感觉用原List一边比较,一边存入修改比较好,至少在我的角度更容易理
2008-04-10 17:53:00
558
原创 Algorithm--二分搜索
之前对hanoi塔的递归一直感到很恐惧,我记得原教材上花了好几张纸来描述和解释,一眼望去,满页的伪代码...回过头再看看,发现理解了它的主要思想,写起来是比较容易的,但是精髓至今仍唏嘘不已。那个将三个柱子作为参数并有选择性的调换位置来实现中转作用的方法,我觉得在没有前人脚印的指引下是很难想到的~废话少说。hanoi塔的代码网上很多,就不贴了。主要是理解思想,思想!!
2008-04-09 11:12:00
651
原创 Algorithm--全排列2递归(c#)
刚把非递归全排列贴上去,经过奋战,终于把递归的写出来了..通过输入n,来输出小于等于n的排列。例如:n=2时,有21,12。其实写的时候大脑感觉一直处于混沌状态,但是迷迷糊糊就写出来了... class PermRecursion ...{ private Liststring> permedList; public PermRecursi
2008-04-08 16:41:00
939
原创 Algorithm--全排列(c#)
出来混的迟早一天要还的,这句话出来工作才真正体会到... 大学里没好好学,许多东西现在都要重新捡起来。按照一个完整的.net自学计划,现在也算走到算法这个学习阶段了。有些体会想share下~ 这次想说的是全排列。“比如a,b和c的排列方式有:abc, acb, bac, bca, cab 和cba。n个元素的排列方式共有n!种。”书上用的是递归方法,由于用的是C++语言,感觉有点
2008-04-08 15:14:00
1107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人