问题标签 [algorithm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
13112 浏览

algorithm - 有没有人有一个好的正确案例算法

有没有人有可信的 Proper Case 或 PCase 算法(类似于 UCase 或 Upper)?我正在寻找具有诸如"GEORGE BURDELL"or之类的值"george burdell"并将其转换为"George Burdell".

我有一个处理简单案例的简单案例。理想的情况是拥有一些可以处理诸如"O'REILLY"并将其变成的东西"O'Reilly",但我知道这更难。

如果这样可以简化事情,我主要关注英语。


更新:我使用 C# 作为语言,但我几乎可以转换任何东西(假设存在类似的功能)。

我同意麦当劳的场景是一个艰难的。我的意思是在我的 O'Reilly 示例中提到这一点,但在原始帖子中没有。

0 投票
2 回答
3392 浏览

algorithm - 将文本格式化为 Pascal 或驼峰大小写的算法

使用这个问题作为基础,有一个算法或编码示例可以将一些文本更改为 Pascal 或 Camel 大小写。

例如:

变成

0 投票
6 回答
29466 浏览

c - 什么是 C 中好的开源 B-tree 实现?

我正在寻找用 C 编写的 B 树库的精益且构建良好的开源实现。它需要在非 GPL 许可下才能用于商业应用程序。理想情况下,该库支持将 B-tree 索引存储/操作为磁盘文件,以便可以使用可配置(即:最小)RAM 占用空间构建大型树。

注意:由于似乎有些混淆,二叉树和 B-Tree不是一回事。

0 投票
2 回答
3794 浏览

c# - 人气算法

在 SO 18 上,Joel 提到了一种算法,该算法可以根据物品的年龄和受欢迎程度对物品进行排名,并且它是基于重力的。有人可以发布这个吗?C# 会很可爱,但实际上任何语言(好吧,我不会 LISP)都可以。

0 投票
1 回答
10960 浏览

algorithm - 模式识别算法

过去,我必须开发一个充当规则评估器的程序。你有一个先行词和一些后续事件(动作),所以如果先行词被评估为真,那么执行的动作。

当时我使用了RETE 算法的修改版本(RETE有三个版本,只有第一个是公开的)用于前件模式匹配。我们在这里谈论的是一个大型系统,每个规则有数百万个操作,并且一些操作符在多个规则中“重复”。

有可能我必须用其他语言重新实现它,即使我在 RETE 方面有经验,有人知道其他模式匹配算法吗?有什么建议还是我应该继续使用 RETE?

0 投票
30 回答
540401 浏览

algorithm - 什么是尾递归?

在开始学习 lisp 时,我遇到了tail-recursive一词。究竟是什么意思?

0 投票
13 回答
20447 浏览

algorithm - 测试链表是否有循环的最佳算法

确定链表中是否有循环的最佳(停止)算法是什么?

[编辑] 时间和空间的渐近复杂度分析会很不错,因此可以更好地比较答案。

[编辑] 原始问题不是解决 outdegree > 1 的节点,但有一些讨论。这个问题更像是“在有向图中检测循环的最佳算法”。

0 投票
10 回答
1231 浏览

algorithm - 在盒子里找到自己的号码

100 名(或偶数 2N :-))囚犯在一个房间 A。他们的编号从 1 到 100。

一个接一个(从 1 号囚犯到 100 号囚犯,按顺序),他们将被带入一个房间 B,里面有 100 个箱子(编号从 1 到 100)等待他们。(封闭的)框内是从 1 到 100 的数字(框内的数字是随机排列的!)。

一旦进入房间 B,每个囚犯可以打开 50 个盒子(他选择打开哪个)。如果他在这 50 个盒子中的一个中找到分配给他的号码,则囚犯可以走进 C 房间,并且在下一个从 A 房间走进 B 房间之前,所有的盒子都会再次关闭。否则,所有囚犯(在房间 A、B 和 C) 被杀死。

在进入房间 B 之前,囚犯可以就策略(算法)达成一致。房间之间没有办法交流(B房间也不能留下任何信息!)。

有没有一种算法可以最大化所有囚犯幸存的概率?该算法实现的概率是多少?

笔记:

  • 随机做事(你称之为“无策略”)确实为每个囚犯提供了 1/2 的概率,但是他们所有人幸存的概率是 1/2^100(这是相当低的)。一个人可以做得更好!

  • 不允许囚犯重新排列箱子!

  • 当囚犯第一次找不到他的号码时,所有囚犯都会被杀死。并且无法进行交流。

  • 提示:一个人平均可以救30多个囚犯,比(50/100) * (50/99) * [...] * 1要多得多

0 投票
14 回答
10015 浏览

algorithm - 自然排序算法

如何在不同的编程语言中自然地对字符串数组进行排序?在答案中发布您的实现及其使用的语言。

0 投票
9 回答
170725 浏览

algorithm - 什么是好的哈希函数?

什么是好的哈希函数?我在大学的数据结构课程中看到了很多散列函数和应用程序,但我大多都知道要制作一个好的散列函数非常困难。作为避免碰撞的经验法则,我的教授说:

(mod 是 C 和类似语言中的 % 运算符)

以素数为哈希表的大小。我知道这是一种避免碰撞和快速的功能,但我怎样才能做出更好的功能呢?对于数字键,字符串键是否有更好的哈希函数?