摘要: 原贴:趣味算法:字符串反转的N种方法 老赵在反对北大青鸟的随笔中提到了数组反转。这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常)。因为我写着写着,就写出来8种方法……现在我们以字符串的反转为例,来介绍这几种方法并对它们的性能进行比较。使用Array.Reverse方法对于字符串反转,我们可以使用.NET类库自带的Array.R... 阅读全文
posted @ 2010-11-04 17:41 higirle 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 数组数组不用多解释了,都了解,这里再重复一些重要的。随机这个词经常出现,在刚学的时候,都说数组在内存中是随机访问的,然而随机数又是随机(不确定)的,这两个概念总是搞不清楚。这里的随机访问与随机存储器的概念一样,google了也百度了,就是搞不到这个随机是什么意思,就只能按random本意来理解了,只好意会。大家都知道数组在内存中存放的方式,是顺序的,也就是在访问某个元素的时候,比如访问第五个元素[... 阅读全文
posted @ 2010-11-04 17:40 higirle 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 栈stack栈是一种先进后出机制,它只允许访问访问一个数据项,即 栈顶(最后插入的数据项)。它有主要的三种操作:push,向栈内压入值;pop,弹出栈顶的值,即返回栈顶的值,并把它从栈内删除;peek,只返回但不删除栈顶。概念很容易理解,无非就像给弹匣压子弹等等这种类比,但是像我这样的新手在刚接触到栈的时候总是很迷茫,认为它很难,其实这只是错觉,主要是因为没有搞清楚栈主要用在那些场景。栈普遍应用于... 阅读全文
posted @ 2010-11-04 17:39 higirle 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 树 首先,在win下,进入命令行,输入tree,它会以树的形式返回当前文件夹下的所有子文件夹及文件。 如上图,就是一个树。 就像一棵被颠倒过来的苹果树,每一个元素称之为节点,如图,A就是这棵树的老大了,称为根(root),如果某个节点有元素的话,这个节点相对于它的子节点为根,这棵树相对于A来说,是它的子树,例如,树D是A的子树。 对于没有子节点的节点,称之为叶节点。 这些树的根都被来自跟的每一条有... 阅读全文
posted @ 2010-11-04 17:38 higirle 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 递归不知道有新手听没听过别人拿剥糖块来形容递归,诸如一层层地剥好比一层层地进入递归。这种比喻可是误导了我,只想着剥了,其实剥完皮儿,取出糖块,再把皮儿一层层地穿上才算个完整的递归。 递归就是自己调用自己的函数或方法了,一般情况,像我这样的新手刚接触递归的时候,迷就迷在了不明白递归的原理上,在 (c#)数据结构与算法分析 --栈与队列 中说过,编译器一般用栈来实现递归,具体就看那篇文章吧。 这里先举... 阅读全文
posted @ 2010-11-04 17:35 higirle 阅读(427) 评论(1) 推荐(0) 编辑
摘要: this is a test file, Sharing and the structure of the memory allocation.//Print the data type of the memory size allocated.//32-bit processors running in the results and comments should be equal.//In ... 阅读全文
posted @ 2010-11-04 17:34 higirle 阅读(242) 评论(1) 推荐(1) 编辑
摘要: 一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,... 阅读全文
posted @ 2010-11-04 17:33 higirle 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1.用堆栈实现倒序打印: http://learn.akae.cn/media/ch12s02.html堆栈是一组元素的集合,类似于数组,不同之处在于,数组可以按下标随机访问,这次访问a[5]下次可以访问a[1],但是堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。如果... 阅读全文
posted @ 2010-11-04 17:16 higirle 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1.一个n*m的矩阵,求一个x是否在这个矩阵中的算法?矩形如下:1 3 5 8 102 4 6 11 123 5 9 12 156 8 10 13 18解析: 1):规律: 每行递增,每列递增, 2):利用二分法的扩展 a[n/2]每次去掉1/2, => a [n/2] [m/2]每次去掉 n/2* (m/2)划分为四个矩形,利用递归法进行分解。 3):如果 a [n/2] [m/2] ... 阅读全文
posted @ 2010-11-04 14:52 higirle 阅读(465) 评论(0) 推荐(1) 编辑