16得票6回答
伪代码编程过程与测试驱动开发

对于那些还没有阅读《Code Complete 2》的人来说,伪代码编程过程基本上是一种通过用简单的英语描述首先设计一个例程,然后逐渐修改为更详细的伪代码,最后转化为代码的方法。这样做的主要好处是通过自上而下地构建系统,而不是自下而上地构建系统,从而在不同层次上演化出一个干净的 API,帮助您...

16得票4回答
最大堆中第K大的元素

我正在努力想出解决以下问题的方法: 给定一个用数组表示的最大堆,返回第k大的元素而不修改堆。我被要求在线性时间内完成,但被告知可以在对数时间内完成。 我想到了一种解决方案: 使用第二个最大堆并将k或k+1个值填充进去(广度优先遍历原始堆),然后弹出k个元素并获取所需元素。我认为这...

16得票3回答
如何高效地找到特定大小的开放矩形?

背景 我有一个矩形区域分成许多小正方形(这是我正在制作的游戏)。我在代码中将其表示为简单的二维boolean数组: ┌──┬──┬──┬──┬──┐ │ │ │ │ │ │ X = X-value, also increasing width ├──┼──┼──┼──┼─...

15得票1回答
查找Fortune算法的伪代码

我希望有人能够以较低级的伪代码向我介绍Fortune算法生成Delaunay三角剖分!我在维基百科上读到了一个版本,但它有点混乱,看起来很高级,而我找到的任何一段代码都有原始C实现的不便之处。 我想用C++实现它,但输出结果需要以我自己定义的类形式(顶点、边和三角形作为对象)呈现。所以我需要...

14得票3回答
《计算机程序设计艺术》中的approximatelyEqual和essentiallyEqual之间的区别

我从其他地方得到了这段代码。根据网站管理员的说法,该代码摘自Knuth的计算机程序设计艺术。 由于我没有那本书,我想知道这两个函数之间有什么区别? bool approximatelyEqual(float a, float b, float epsilon) { return f...

14得票4回答
Object.hashCode()算法

我正在寻找 Object.hashCode() 的算法。 这段代码是在 Object.java 中本地编写的。 这是因为: (a) 代码是用汇编语言编写的——根本没有使用Java或任何其他高级编程语言。 或者 (b) 它仅仅没有公开披露。 在任一情况下,我都想获取“如何计算 has...

14得票16回答
排序:如何对包含三种类型数字的数组进行排序

例如:int A[] = {3,2,1,2,3,2,1,3,1,2,3}; 如何高效地对这个数组进行排序? 这是面试需要的,只需要提供一个伪代码。

14得票2回答
递归和迭代的二分查找:哪一个更高效,为什么?

我已经编写了递归和迭代二分搜索的算法: 递归:AlgorithmBinSrch(a, i,l,x) // Given an array a[i :l] of elementsin nondecreasing // order,1<i <=l,determinewhetherx i...

13得票3回答
仅使用加法、除法和乘法,在固定步数内达到一个数字的算法

在工作中开发一个游戏,在游戏的某个点上,玩家会被投入到一个奖励游戏中。他们需要赢得一定金额,然而我们希望设计一个算法,使用加法、乘法和除法来在x步内达到该金额。步数也会事先确定,因此算法只需找出如何使用这些步数来达到目标数字。 你可以使用的计算方式仅限于+1至+15、x2、x4、/2和/4。...

13得票4回答
仅使用3个元素对整数数组进行排序

我有这个数组:int [] myarray = {17, 6, 8}; 如何使用伪代码对该数组进行最优排序? 谢谢!