标签: algorithm

什么是Hi/Lo算法?

什么是Hi/Lo算法?

我在NHibernate文档中找到了这个(它是生成唯一键的一种方法,第5.1.4.2节),但我没有找到它如何工作的很好的解释.

我知道Nhibernate处理它,我不需要知道内部,但我只是好奇.

database algorithm nhibernate hibernate hilo

454
推荐指数
4
解决办法
9万
查看次数

如何替换字符串中出现的所有字符?

将所有出现的角色替换为另一个角色的有效方法是什么std::string

c++ algorithm stdstring str-replace

450
推荐指数
7
解决办法
46万
查看次数

如何构建堆是O(n)时间复杂度?

有人可以帮助解释如何构建堆是O(n)复杂性?

将项插入堆中O(log n),并且插入重复n/2次(其余为叶,并且不能违反堆属性).所以,这意味着复杂性应该是O(n log n),我想.

换句话说,对于我们"堆积"的每个项目,它有可能必须针对堆的每个级别过滤一次(这是log n级别).

我错过了什么?

algorithm heap complexity-theory construction

429
推荐指数
9
解决办法
24万
查看次数

Google如何"你的意思是?" 算法工作?

我一直在开发一个投资组合管理工具的内部网站.有很多文本数据,公司名称等.我对一些搜索引擎能够快速回复查询的印象非常深刻,"你的意思是:xxxx".

我需要能够智能地进行用户查询并不仅响应原始搜索结果,还要回答"你的意思是?" 当有极有可能的替代答案等时作出回应

[我正在开发ASP.NET(VB - 不要反对我!)]

更新:好的,如果没有数百万"无偿用户",我怎么能模仿这个?

  • 为每个"已知"或"正确"术语生成拼写错误并执行查找?
  • 其他一些更优雅的方法?

algorithm nlp spell-checking machine-learning text-search

426
推荐指数
7
解决办法
8万
查看次数

反转字符串的最佳方法

我只需要在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;
}
Run Code Online (Sandbox Code Playgroud)

就个人而言,我并不是对这个功能感到疯狂,并且我确信有更好的方法可以做到这一点.在那儿?

.net c# algorithm unicode performance

419
推荐指数
20
解决办法
61万
查看次数

如何检测链表中的循环?

假设您在Java中有一个链表结构.它由节点组成:

class Node {
    Node next;
    // some user data
}
Run Code Online (Sandbox Code Playgroud)

每个节点都指向下一个节点,最后一个节点除外.假设列表有可能包含一个循环 - 即最终的节点,而不是具有空值,具有对列表中的一个节点的引用.

什么是最好的写作方式

boolean hasLoop(Node first)
Run Code Online (Sandbox Code Playgroud)

true如果给定的Node是带循环的列表的第一个,它将返回,false否则?你怎么写,这需要一个恒定的空间和合理的时间?

这是一个循环列表的图片:

替代文字

java algorithm linked-list data-structures

413
推荐指数
9
解决办法
16万
查看次数

什么是计算机科学的NP-complete?

什么是NP完全问题?为什么它是计算机科学中如此重要的话题?

language-agnostic theory algorithm np-complete mathematical-optimization

405
推荐指数
12
解决办法
24万
查看次数

生成给定字符串的所有排列

找到字符串的所有排列的优雅方法是什么.是的ba,会是baab,但是怎么样abcdefgh?是否有任何Java实现示例?

java algorithm

404
推荐指数
13
解决办法
54万
查看次数

持续摊还的时间

在讨论算法的时间复杂度时,"恒定摊还时间"是什么意思?

algorithm complexity-theory big-o

396
推荐指数
5
解决办法
8万
查看次数

最快的固定长度6 int数组

回答另一个Stack Overflow问题(这个)我偶然发现了一个有趣的子问题.排序6个整数数组的最快方法是什么?

由于问题是非常低的水平:

  • 我们不能假设库可用(并且调用本身有它的成本),只有普通的C.
  • 避免排空指令流水线(具有非常高的成本),我们也许应该尽量减少分支机构,跳跃,和所有其他类型的控制流断裂的(像那些隐藏在背后的序列点&&||).
  • 房间受限制,最小化寄存器和内存使用是一个问题,理想情况下,排序可能是最好的.

真的这个问题是一种高尔夫,其目标不是最小化源长度而是执行时间.我把它叫做"Zening"代码在本书的标题中的代码优化禅迈克尔·亚伯拉什及其续集.

至于为什么它很有趣,有几个层次:

  • 这个例子很简单,易于理解和衡量,并没有太多的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 < 6 ; i++){
            if (d[i] < d[imin]){
                imin = i;
            }
        }
        tmp = d[j];
        d[j] = d[imin];
        d[imin] = …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm optimization gpgpu sorting-network

396
推荐指数
11
解决办法
7万
查看次数