德尔福表现:案例与如果
发布时间: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)?) 。 我正确的说,开关要快得多吗? 解决方法
>是的,交换机是O(1),而级联if(O)
是的,见(1) > branch table (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |