- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 关于函数调用和尾递归的一点认识
函数调用在大多数支持块结构的程序设计语言都支持函数或者子程序(函数和子程序的区别在于函数有返回值而子程序没有,在这里我们不区分这两个概念)。在进行函数调用和从函数返回时通常由一个被称为控制栈的运行时刻栈进行管理。每一个活跃的函数在控制栈中都会有一个相对应的活动记录,有时也称为栈帧。活动记录存储着函数调用时传递的参数信息和从函数返回时返回值与控制跳转的信息。 函数的活动记录需要包括下面的
2012-03-08 18:08:35
1660
原创 可计算性与停机问题
可计算性可计算性理论明确了在理论上可计算的函数应具有的特征。那些定义在自然数集上的、理论上可计算的函数通常被称为部分递归函数。概念中强调“理论上可计算”,是因为某些可计算函数在实际计算中可能会耗费相当长的计算时间,可能在我们宇宙现存时间内都无法完成其计算。 直观地说,如果存在一段程序来计算一个函数,那么这个函数就是可计算的。更明确地说,如果对于函数f: A -> B存在一个算法,以任意
2012-03-05 22:24:32
1977
原创 利用二分查找在循环递增数组中检索一个元素
这是我在校园招聘面试时被问到的一个问题。问题是: 在一个循环递增数组中检索一个元素的时间复杂度较低的算法。所谓循环递增数组就是,假设一个长度为n的数组A,存在一个有效下标r(下标从0开始),使得将子数组A[0...r]拼接到子数组A[r+1...n-1]后面得到一个严格递增数组(A[i...j]表示数组A的从下标i开始到下标j结束的所有元素组成的子数组)。严格递增数组是循环递增数
2012-02-15 15:40:31
1793
原创 利用最大堆和最小堆在线寻找中位数
题外话:前段时间参加校园招聘,经常在一些公司的笔试或者面试中遇到一些不错的算法题,回到宿舍和同学进行交流,收获许多。这段时间,工作定下来后,整天闲着没事,就整理之前一些不错的算法题及其想法。下面这个算法题是一个同学去参加百度校园招聘面试时遇到的题目,当时他写了一篇日志。看到他那篇日志,我和舍友小平同学讨论了两三个小时。下面对当时的想法进行一些整理。问题:给定n个int型的数和一个空
2011-12-06 13:54:18
2149
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人