switch语句的运行时复杂度是多少?

我想知道switch语句在最坏情况下的运行时复杂度是多少(假设您有 n种 情况)。

我一直以为是 O(n) 。不过,我不知道编译器是否做任何聪明的事情。如果答案是特定于实现的,那么我想知道以下几种语言:

  • Java
  • C / C ++
  • C#
  • PHP
  • Javaboot

回答:

这是最坏的O(n)。有时(这取决于语言和编译器),它转换为跳转表查找(对于大小写范围不太大的“不错”的开关)。那就是O(1)

如果编译器想要时髦,我可以考虑将复杂度实现为介于两者之间的任何方式(例如,对案例执行二进制搜索,以获取logn)。但实际上,您将获得线性时间或恒定时间。

以上是 switch语句的运行时复杂度是多少? 的全部内容, 来源链接: utcz.com/qa/435283.html

回到顶部