Tag: algorithm

比较stringJavaScript返回可能的百分比

我正在寻找一个可以比较两个string的JavaScript函数,并返回它们相似的可能性。 我已经看过soundex,但是对于多string或非名字来说并不是那么好。 我正在寻找一个function,如: function compare(strA,strB){ } compare("Apples","apple") = Some X Percentage. 该函数可以处理所有types的string,包括数字,多字值和名称。 也许有一个简单的algorithm,我可以使用? Ultimately none of these served my purpose so I used this: function compare(c, u) { var incept = false; var ca = c.split(","); u = clean(u); //ca = correct answer array (Collection of all correct answer) //caa = a single correct answer […]

对n个第一个元素已经sorting的向量进行sorting?

考虑N元素的std::vector v ,并且认为n第一个元素已经被sorting, n < N ,其中(Nn)/N非常小: 有一个聪明的方法使用STLalgorithmsorting这个向量比完整的std::sort(std::begin(v), std::end(v))更快吗? 编辑:澄清:(Nn)未分类的元素应插入在已sorting的n个第一个元素内的正确位置。 EDIT2:奖金问题:以及如何findn? (对应于第一个未分类的元素)

给定的股票报价最大化利润

在面试时我被问到了这个问题,并在最近的比赛中再次看到了这一点 代码冲刺:系统 **问题: 给你一个天的股票价格。 你可以每天购买一单位的股票,出售任何你已经购买的股票单位,或者什么也不做。 通过最佳地规划您的交易策略,您可以获得的最大利润是多less? 示例(input即date的不同可能会有所不同) 5 3 2 =>利润= 0 //由于价格每天都在下降,我们可以赚取的最大利润= 0 1 2 100 =>利润= 197 1 3 1 2 =>利润= 3 //我们以3的价格买入1,然后我们以1买入,卖出2 ..总利润= 3 我的解决scheme a)find股票价格最大的那一天。 继续购买1单位的股票,直到那一天。 b)如果那一天是最后一天,那么退出: 否则:当天卖出所有的股票,并在那一天之后拆分数组,然后recursion剩余的元素 c)合并利润 例如1 4 1 2 3 a)第2天股价最高..所以我们在第1天买入股票并在第2天卖出(利润= 3),然后我们在剩下的日子里递减:1 2 3 b)最大价格是3(第5天),所以我们在第3天和第4天持续购买股票,在第5天卖出(利润=(3 * 2-3)= 3) c)总利润= 3 + 3 = 6 这个复杂性原来是O(n ^ […]

algorithm来判断照片中的人的年龄是否可行?

我的朋友为非营利组织工作,致力于阻止非法利用craigslist.org等网站非法开发未成年人,craigslist.org是最受欢迎的媒体之一。 问题是现在或者在不远的将来是否有可能开发一种algorithm来分析一个人的照片并返回他们的相对年龄的预测。 这听起来像一个巨大的任务。 我唯一的想法是某种贝叶斯概率系统。 我知道,即使人们经常在判断某个人的年龄方面遇到困难,但是贝叶斯垃圾邮件filter被宣称为“十倍于人类的准确度”,所以也许有可能呢? 虽然我很缺乏经验。 如果有其他人可以build议这是否可行,如果可行,我将不胜感激。 编辑:谢谢大家的回应。 害怕这项研究是非常有帮助的,但我认为Hal的解决scheme是目前最实用的。

圆圈交点

我如何计算两个圆的交点。 我希望在所有情况下都有两个,一个或没有交点。 我有中心点的x和y坐标,以及每个圆的半径。 在python中的答案是首选,但任何工作algorithm是可以接受的。

Jaro-Winkler和Levenshtein距离之间的区别?

我有一个用例,我需要对来自多个文件的数百万条logging进行模糊匹配。 我确定了两个algorithm: Jaro-Winkler和Levenshtein编辑距离。 当我开始探索这两者时,我无法理解两者之间的确切区别。 Levenshtein似乎给出了两个string之间的编辑数量,Jaro-Winkler给出了0.0到1.0之间的匹配分数。 我不明白这个algorithm。 因为我需要使用任何一种algorithm,所以我需要知道algorithm性能的确切区别。

将string分成长度可变的较小的string

我想通过一定的长度variables来分割一个string。 当string的最后一段长度不能长于或长于长度时,它需要进行边界检查以防止爆炸。 寻找最简洁(但可以理解)的版本。 例: string x = "AAABBBCC"; string[] arr = x.SplitByLength(3); // arr[0] -> "AAA"; // arr[1] -> "BBB"; // arr[2] -> "CC"

睡眠()后面的algorithm是什么?

现在我总是想知道:sleep()是如何实现的? 如果是从操作系统使用API​​,那么API是如何制作的? 这一切都归结为在CPU上使用特殊的机器码吗? 那个CPU是否需要一个特殊的协处理器或其他小玩意儿,没有它你不能睡觉()? 睡眠()的最着名的化身是C语言(在C语言编译器附带的库(比如GNU的libc)中更加准确),尽pipe今天几乎所有的语言都有它的等价物,但是在某些语言中实现睡眠认为Bash)不是我们在这个问题上看的… 编辑:在阅读了一些答案之后,我看到这个过程被放置在一个等待队列中。 从那里,我可以猜到两种select 一个定时器被设置,以便内核在适当的时候唤醒进程,或者 每当内核被允许一个时间片时,它就轮询时钟以检查是否该唤醒进程。 答案只提到替代scheme1.因此,我问:这个计时器如何performance? 如果这是一个让内核唤醒进程的简单中断,那么内核怎么会要求定时器“在140毫秒内唤醒我,这样我才能使进程处于运行状态”?

如何计算1的数字将在二进制数字?

可能重复: 计算32位整数中设置位数的最佳algorithm是什么? 我如何计算一个数字将在二进制数字? 所以我们假设我的数字是45 ,等于101101 ,二进制数字是4 1 。 什么是写一个algorithm来做到这一点的最有效的方法?

磁盘支持的STL容器类?

我喜欢使用STL开发algorithm,但是,在我的数据集对于堆太大的情况下,我有这个反复出现的问题。 我一直在寻找替代STL容器和algorithm的磁盘备份,也就是存储在磁盘而不是堆上的数据结构。 最近朋友指出我对stxxl 。 在我涉及之前…是否有其他的磁盘备份STL替代品,我应该考虑? 注意:我对持久性或embedded式数据库不感兴趣。 请不要提及boost :: serialization,POST ++,关系模板库,Berkeley DB,sqlite等。我知道这些项目,并在适合我的目的时使用它们。 更新:有几个人提到了内存映射文件,并使用自定义分配器,很好的build议顺便说一句,但我会指出他们在这里的讨论David Abrahambuild议磁盘备份容器需要自定义迭代器。 这意味着自定义分配器的方法是不可能的。