如何计算包含 'if... else...' 语句的操作数?
How to count the number of operations including an 'if... else...' statement?
假设我正在使用操作计数计算以下伪代码的 运行 时间:
if(a > b) then [1 operation]
return a-b [1 operation]
else
return b-a [1 operation]
我会计算包括两个 return 语句(3 个操作)在内的操作总数吗?或者,由于我们在计算 运行 时间时通常会考虑最坏的情况——我会不会将第一个 return 语句算作一个操作,因为它不会在最坏的情况下执行(2 个操作) )?
分析代码时,您必须考虑分支条件,例如循环和 if 语句。每个代码分支都以 return 语句结束。
所以在你的代码中,一旦你点击 if,你就会创建两个分支。两个分支都有相同数量的操作,不过是一个减法。
基本上,最坏的情况是代码到单个 return 语句的最长路径。
假设我正在使用操作计数计算以下伪代码的 运行 时间:
if(a > b) then [1 operation]
return a-b [1 operation]
else
return b-a [1 operation]
我会计算包括两个 return 语句(3 个操作)在内的操作总数吗?或者,由于我们在计算 运行 时间时通常会考虑最坏的情况——我会不会将第一个 return 语句算作一个操作,因为它不会在最坏的情况下执行(2 个操作) )?
分析代码时,您必须考虑分支条件,例如循环和 if 语句。每个代码分支都以 return 语句结束。
所以在你的代码中,一旦你点击 if,你就会创建两个分支。两个分支都有相同数量的操作,不过是一个减法。
基本上,最坏的情况是代码到单个 return 语句的最长路径。