加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

德尔福表现:案例与如果

发布时间:2020-12-15 10:17:58 所属栏目:大数据 来源:网络整理
导读:我想可能与以前的SO问题有一些重叠,但是我找不到关于这个话题的Delphi具体问题。 假设你想检查一个无符号的32位整数变量“MyAction”是否等于ACTION1,ACTION2,…,ACTIONn中的任何一个,其中n为 – 说为1000。我猜,除了更优雅, case MyAction of ACTION
我想可能与以前的SO问题有一些重叠,但是我找不到关于这个话题的Delphi具体问题。

假设你想检查一个无符号的32位整数变量“MyAction”是否等于ACTION1,ACTION2,…,ACTIONn中的任何一个,其中n为 – 说为1000。我猜,除了更优雅,

case MyAction of
  ACTION1: {code};
  ACTION2: {code};
  ...
  ACTIONn: {code};
end;

比快得多

if MyAction = ACTION1 then
  // code
else if MyAction = ACTION2 then
  // code
...
else if MyAction = ACTIONn then
  // code;

我猜,如果正确的动作ACTIONi具有较高的i值,那么if变量需要时间O(n)来完成(即找到正确的动作),而case变量需要更少的时间(O(1)?) 。

我正确的说,开关要快得多吗?
我正确的是,在开关案例中找到正确的动作所需的时间实际上与n无关?即是否真的需要检查百万例,而不是检查10例?
>这究竟是如何工作的?

解决方法

>是的,交换机是O(1),而级联if(O)
是的,见(1)
> branch table

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读