zoukankan      html  css  js  c++  java
  • if与switch的性能比较

    前言

    之前学习Java时,遇到了个问题,有点纠结。当ifswitch都实现相同的功能时,该改采用哪种方法实现?
    我并不懂得如何准确测量两者之间的性能区别,便在OlineJudge上找条该类型的题,来测试两者的性能结果
    好,废话不多说,看图

    下面是运行结果,前者为if的,后者为switch的

    switch的实现

    if的实现


    虽然两者的结果相比,占用内存相同,运行时间相差较大,
    但是OnlineJudge所用的数据是否相同、数据量多大及是否相同等等都不清楚。

    之后翻查了一些其他资料,switch的执行速度并不是一直都超过if,当数据量达到万级或者百万级时,if的执行速度反而会比switch更快

    但是试问一下,大多数方法的控制条件数量都不会超两位数吧?
    所以相比追求更快的运行速度,还不如选择合适的方法实现该功能。

    if在某些情景更适合表达逻辑,而switch也有它的优势。就我知道而言,switch的控制表达式依次与case后的值匹配。遇到相对应的值时,执行对应的执行体,没有break时继续往下执行。

    所以我们可以根据case标签的执行频率排列case标签的顺序进一步提高速度

  • 相关阅读:
    洛谷 1195 口袋的天空
    洛谷1955 程序自动分析
    【洛谷3295】[SCOI2016]萌萌哒
    洛谷2024 食物链
    八数码问题
    Codeforces Round #442 (Div. 2)
    Oracle 中truncate与delete的区别
    git命令提交步骤和解决冲突的
    git 更新代码到本地
    12、Python中的包
  • 原文地址:https://www.cnblogs.com/chenjunping/p/6215458.html
Copyright © 2011-2022 走看看