
算法思考
虾米ning
keep learning
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编程思考[1]--递归和迭代再思考
林锐博士的高质量C++对递归进行了很精辟的讲解,下面是我自己对他讲解的一种归纳和理解。 递归是一个逐步分解的过程,通过函数调用自己,将问题逐步分解为多个自己去计算(逐个压栈),然后所有结果达到基本条件后再返回值,并销毁的过程(逐个出栈) 这里面有两个思想:一个是逐步分解,将复杂问题(这个复杂主要体现在规模上)化为单个问题去解决。另一个是入栈出栈的问题,这个是内存分配和存储的问题。 递原创 2014-01-17 01:48:17 · 580 阅读 · 0 评论 -
编程练习思考[4]---从一道两年前的指针题再理解理解指针
重读了遍高质量C++又唤起了对指针的一些思考,记录如下。 关于指针:指针存储的是内存地址,而普通变量存储的是值,但是为什么值传递就不行,而指针传递就可以,但是究竟是什么本质的不同导致值传递和指针传递的效果不一样呢? 先来看两个链条。 指针变量名字---内存地址---内存存储值 普通变量名字---内存存储值 上面分别是指针变量和普通变量跟值之间的关系。值传递和指针传递之所以效果不一样,根本原创 2014-12-18 00:21:43 · 497 阅读 · 0 评论 -
[编程练习思考5]--从初衷来理解快速排序算法
快速排序是分治算法的经典体现之一,但是我总是会忘,原因之一我觉得就是由于之前的快拍是C语言写的,因为C语言没有那么高级的容器,因此用C写的快排就需要额外思考数据存储的位置,将他们充分利用起来。但是这样的快排写出来是分治思想和存储方法夹杂在一起实现的,并不能直观反映快速排序的最直接的分治特性。 后来我用python实现了一组快速排序,用到了list这种略高端一些的数据结构,这样快排二原创 2014-12-24 22:53:44 · 710 阅读 · 0 评论