Questions tagged «algorithm»

算法是定义明确的问题解决方案的一系列明确定义的步骤。当您的问题与算法设计有关时,请使用此标签。


12
为什么Java的String中的hashCode()使用31作为乘数?
每Java文档中,哈希代码的String对象被计算为: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] 使用int算术,其中s[i]是 我字符串的个字符,n是字符串的长度,以及^表示取幂。 为什么将31用作乘数? 我知道乘数应该是一个相对较大的素数。那么为什么不29或37甚至97?
480 java  string  algorithm  hash 

5
什么是高/低算法?
什么是高/低算法? 我已经在NHibernate文档中找到了这一点(这是生成唯一密钥的一种方法,第5.1.4.2节),但是我没有找到有关其工作原理的很好的解释。 我知道Nhibernate可以处理它,并且我不需要了解内部,但是我很好奇。

30
反转字符串的最佳方法
我只需要在C#2.0中编写一个字符串反向函数(即LINQ不可用),并提出了以下建议: public string Reverse(string text) { char[] cArray = text.ToCharArray(); string reverse = String.Empty; for (int i = cArray.Length - 1; i > -1; i--) { reverse += cArray[i]; } return reverse; } 就我个人而言,我并不对功能感到疯狂,并且坚信有更好的方法来实现它。在那儿?

18
Google如何表达“您的意思?” 算法工作?
我一直在为投资组合管理工具开发内部网站。有很多文本数据,公司名称等。我对某些搜索引擎能够以“您的意思是:xxxx”快速响应查询的能力印象深刻。 我需要能够智能地进行用户查询,并不仅要响应原始搜索结果,还要响应“您是不是要这么做?” 当有非常可能的替代答案时的响应等 [我正在ASP.NET中开发(VB-不要反对我!)] 更新:好的,如果没有成千上万的“未付费用户”,我该如何模仿呢? 为每个“已知”或“正确”术语生成拼写错误并执行查找? 还有其他更优雅的方法吗?

25
如何检测链表中的循环?
假设您在Java中有一个链表结构。它由节点组成: class Node { Node next; // some user data } 每个节点都指向下一个节点,但最后一个节点除外,后者的下一个为空。假设列表有可能包含一个循环-即最终节点(而不是null)具有对列表中位于其之前的节点之一的引用。 最好的写作方式是什么 boolean hasLoop(Node first) true如果给定的Node是带有循环的列表的第一个,则将返回false什么,否则返回?您怎么写才能占用恒定的空间和合理的时间? 这是带有循环的列表的图片:




24
最快的固定长度6 int数组
在回答另一个堆栈溢出问题(这个问题)时,我偶然发现了一个有趣的子问题。对6个整数数组进行排序的最快方法是什么? 由于问题非常低: 我们不能假设库可用(并且调用本身有成本),只能使用普通C语言 为了避免排空指令流水线(具有非常高的成本),我们也许应该尽量减少分支机构,跳跃,和所有其他类型的控制流断裂(像那些隐藏在背后的序列点&&或||)。 房间受到限制,尽量减少寄存器和内存使用是一个问题,理想情况下,最好在适当的位置进行排序。 确实,这个问题是一种高尔夫,其目标不是最小化源代码长度,而是执行时间。我将其称为“ Zening”代码,如Michael Abrash所著的《Zen of Code Optimization》及其续集的书名中所用。 至于为什么有趣,它分为几层: 该示例简单易懂,易于度量,不涉及太多C技能 它显示了针对该问题选择良好算法的效果,还显示了编译器和基础硬件的效果。 这是我的参考(天真,未优化)实现和测试集。 #include <stdio.h> static __inline__ int sort6(int * d){ char j, i, imin; int tmp; for (j = 0 ; j < 5 ; j++){ imin = j; for (i = j + 1; i < …

11
获取最接近的字符串匹配
我需要一种将多个字符串与一个测试字符串进行比较并返回与其非常相似的字符串的方法: TEST STRING: THE BROWN FOX JUMPED OVER THE RED COW CHOICE A : THE RED COW JUMPED OVER THE GREEN CHICKEN CHOICE B : THE RED COW JUMPED OVER THE RED COW CHOICE C : THE RED FOX JUMPED OVER THE BROWN COW (如果我正确地做到了)与“ TEST STRING”最接近的字符串应该是“ CHOICE C”。最简单的方法是什么? 我计划将其实现为多种语言,包括VB.net,Lua和JavaScript。在这一点上,伪代码是可以接受的。如果您可以提供特定语言的示例,也将不胜感激!




9
图像比较-快速算法
我正在寻找创建图像的基本表,然后将其与任何新图像进行比较,以确定新图像是否与基础完全相同(或近似)。 例如:如果您想减少同一图像的存储100次,则可以存储它的一个副本并提供指向它的参考链接。输入新图像后,您想与现有图像进行比较,以确保它不是重复的...想法? 我的一个想法是缩小到小缩略图,然后随机选择100个像素位置并进行比较。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.