小编ric*_*ian的帖子

更快的字符串排序与长公共前缀?

我有一组字符串.其中90%是URL的开头"http://www.".我想按字母顺序排序.

目前我使用C++ std :: sort().但是std :: sort是基于比较的快速排序的变体,并且比较具有长公共前缀的两个字符串是不有效的.但是(我认为)基数排序也不起作用,因为大多数字符串由于长公共前缀而放在同一个桶中.

对于这个问题,有没有比普通快速排序/基数排序更好的算法?

sorting string algorithm data-structures

9
推荐指数
1
解决办法
797
查看次数

std :: map是否支持缓存?

例如:

代码1:

if((iter = map.find(key)) != map.end()) {
    return iter->second;
}
return 0;
Run Code Online (Sandbox Code Playgroud)

码2:

if(map.count(key) > 0) {
    return map.at(key);
}
return 0;
Run Code Online (Sandbox Code Playgroud)

代码2是更简单的,但两者map.count()map.at()成本O(LOGN)的时间.是否std::map提供了一个功能,可以将最后一个搜索项存储在缓存中并更快地搜索相同的项目,还是仅在整个地图中执行第二次搜索?

c++ stl map

4
推荐指数
1
解决办法
575
查看次数

标签 统计

algorithm ×1

c++ ×1

data-structures ×1

map ×1

sorting ×1

stl ×1

string ×1