哪个版本的“查找出现”功能更快?

     2023-02-22     40

关键词:

【中文标题】哪个版本的“查找出现”功能更快?【英文标题】:Which version of "find an occurence" function is faster? 【发布时间】:2014-03-27 12:20:26 【问题描述】:

我的算法不是很强。有两个版本的函数,如果传递的字符串中有任何大写字母,则返回。 First 不检查每次迭代的条件。第一次出现大写字母后的第二次结束。一般来说哪个更快?

bool isAnyCapLetters(const std::string &s) 
    int flag = 0;
    for (auto el : s)
        flag += isupper(el);
    return static_cast<bool>(flag);

bool isAnyCapLetters(const std::string &s) 
    for (auto el : s)
        if (isupper(el)) return true;
    return false;   

【问题讨论】:

两者似乎都是 O(n),所以时间可能相等 @staticx 最坏情况渐近复杂度并不是衡量性能的唯一有用指标。 @delnan:是的,在这种情况下,虽然它正在迭代一个未知长度的未知字符串。我认为你必须考虑最坏的情况。另外,这些函数是不相等的,因为一个是计数函数,一个是计数函数,另一个是有效性检查。 if 花费少于+=,并且可能会提前打破循环 @Tim: "if 花费少于 +=" - 除非分支预测失败,在这种情况下它可能会慢得多。测量是唯一确定的方法。 【参考方案1】:

第二个返回较早,对于以大写字母开头的长字符串会更快。

【讨论】:

【参考方案2】:

如果你有一个像This_is_a_useless_but_not_so_very_short_string_whooptifriggindoo 这样的字符串,那么第一个函数将循环遍历所有字符,并且必须在最后进行强制转换。第二个函数将看到第一个字符是大写的,并且将立即返回而不进行任何转换。因此第二个函数会更快。

【讨论】:

哪个具有更快的运行时性能:WPF 或 Winforms?

】哪个具有更快的运行时性能:WPF或Winforms?【英文标题】:Whichonehasafasterruntimeperformance:WPForWinforms?【发布时间】:2011-02-0107:27:23【问题描述】:我知道WPF更复杂且更灵活,因此可以考虑进行更多计算。但既然渲染是在GPU上完成... 查看详情

如果两者产生相同的结果,哪个运行更快的 sql 或 plsql? [关闭]

】如果两者产生相同的结果,哪个运行更快的sql或plsql?[关闭]【英文标题】:whichrunsfastersqlorplsqlifbothproducessameresult?[closed]【发布时间】:2014-10-3113:54:48【问题描述】:如果两者产生相同的结果,哪个运行更快的sql或plsql?这个... 查看详情

R - 如何识别功能的哪个版本(包)是活动/附加的?

】R-如何识别功能的哪个版本(包)是活动/附加的?【英文标题】:R-howtoidentifywhichversion(package)ofafunctionisactive/attached?【发布时间】:2019-09-0410:32:59【问题描述】:当我有多个包含一个函数的包时,如果我调用它(没有明确命名... 查看详情

cssvs.jsanimation:哪个更快

CSSvs.JSAnimation:哪个更快?CSSvs.JSAnimation:哪个更快?基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且,Adobe和Google竟然一直在发布可以媲美原生应用的富媒体移动站点?这篇文章将会逐点讲解基于JavaScript的DOM动画库... 查看详情

在以下情况下哪个更快? [关闭]

】在以下情况下哪个更快?[关闭]【英文标题】:Whichoneisfasterinthefollowingcases?[closed]【发布时间】:2014-03-2711:49:37【问题描述】:哪个更快?假设C++的编译器是普通的。///////////////////////CodeA:inta,b,c;///////////////////////CodeB:inta;intb;int... 查看详情

哪个是更快的 XML 解析器? [关闭]

】哪个是更快的XML解析器?[关闭]【英文标题】:WhichisafasterparserforXML?[closed]【发布时间】:2013-07-1309:33:18【问题描述】:我正在尝试解析一个简单的文件,我想知道:XML::SimpleXML::SmartLibXML哪个更快?【问题讨论】:简单:使用XM... 查看详情

哪个更快?常量、变量或变量数组

】哪个更快?常量、变量或变量数组【英文标题】:Whichisfaster?Constants,VariablesorVariableArrays【发布时间】:2011-12-0715:58:06【问题描述】:我当前的Web应用程序使用大约30个Contants(DEFINE())。我正在阅读变量更快的东西。如果有一个命... 查看详情

哪个 SQL 查询更快,为啥?

】哪个SQL查询更快,为啥?【英文标题】:WhichSQLqueryisfasterandwhy?哪个SQL查询更快,为什么?【发布时间】:2011-07-0419:40:50【问题描述】:最近,有人要求我编写一个查询,以便从包含最大数量的此类实体的组中选择实体的属性... 查看详情

哪个Oracle查询更快

】哪个Oracle查询更快【英文标题】:WhichOraclequeryisfaster【发布时间】:2018-11-2415:08:50【问题描述】:我正在尝试使用C#WPF视图显示员工属性。我的数据库中有“2”个不同的oracle表中的数据:那些高层次的表结构是……员工表(EMP)-... 查看详情

哪个更快,水平计数还是垂直计数?

】哪个更快,水平计数还是垂直计数?【英文标题】:Whichisfaster,horizontalorverticalcounting?【发布时间】:2010-09-1721:46:53【问题描述】:我需要从很多行中获取摘要数据。汇总字段是对不同字段的每个值有多少条目的计数。例如,... 查看详情

哪个更快,OpenTSDB 还是 KairosDB?

】哪个更快,OpenTSDB还是KairosDB?【英文标题】:Whichoneisfaster,OpenTSDBorKairosDB?【发布时间】:2015-07-0106:26:24【问题描述】:OpenTSDB超级快。KairosDB被称为OpenTSDB的重写,并声称它甚至比OpenTSDB(seehere)更快。但是,我在我的VirtualBox(5G... 查看详情

jQuery 选择器:获取子集的哪个更快?

】jQuery选择器:获取子集的哪个更快?【英文标题】:jQuerySelectors:Whichisfasterforgrabbingasubsetofchildren?【发布时间】:2011-04-2319:28:20【问题描述】:跟进this问题,我有以下两个选择:$("trtd").slice(3,6);可能是这样的(从算法上讲,我... 查看详情

哪个sql查询更快?

】哪个sql查询更快?【英文标题】:Whichsqlqueryisfaster?【发布时间】:2014-12-2511:29:56【问题描述】:我正在使用postgresql数据库并希望改进查询(第一个)。我将其重写为第二个。但是我读了一篇文章,上面说“NOTIN”是非常缓慢... 查看详情

哪个更快: glob() 或 opendir()

】哪个更快:glob()或opendir()【英文标题】:Whichisfaster:glob()oropendir()【发布时间】:2011-02-1508:06:27【问题描述】:对于读取大约1-2K的文件,glob()和opendir()之间哪个更快?【问题讨论】:它们没有可比性,您应该将glob()与做同样事... 查看详情

字典检索或列表索引哪个更快?

】字典检索或列表索引哪个更快?【英文标题】:Whichisfasteradictionaryretrieveoralistindexing?【发布时间】:2016-08-2814:44:45【问题描述】:我正在尝试确定哪种数据结构最适合我的需求。除了技术细节之外,我可能会将我的程序的需求... 查看详情

indexOfObjectsPassingTest 或 filteredArrayUsingPredicate 哪个性能更快?

】indexOfObjectsPassingTest或filteredArrayUsingPredicate哪个性能更快?【英文标题】:WhichhasfasterperformanceindexesOfObjectsPassingTestorfilteredArrayUsingPredicate?【发布时间】:2014-02-0502:01:04【问题描述】:当需要过滤NSArray以获取返回的数组中项目的... 查看详情

哪个更快:多行还是多列?

】哪个更快:多行还是多列?【英文标题】:Whichisfaster:Manyrowsormanycolumns?【发布时间】:2010-11-1503:38:33【问题描述】:在MySQL中,返回100行3列还是1行100列通常更快/更高效/可扩展?换句话说,当存储与记录相关的许多key=>value... 查看详情

哪个是遍历 DOM 元素的更快方法?

】哪个是遍历DOM元素的更快方法?【英文标题】:WhichisthefasterwaytotraverseaDOMelement?【发布时间】:2014-02-2505:57:29【问题描述】:假设我有这样的标记:<divid="comment_box"><divclass=\'comment\'><ul><liclass=\'comment_1\'></li&g... 查看详情