欢迎光临
我的个人博客网站

第 50 题:为什么 for 循环嵌套顺序会影响性能?

核心:循环次数少的放在外层,减少内层变量的操作次数

// 嵌套方式一 function first() {     let startTime = new Date().getTime();      for (let i = 0; i < 100; i++) {         for (let j = 0; j < 1000; j++) {             for (let k = 0; k < 10000; k++) {}         }     }      let endTime = new Date().getTime();      return endTime - startTime + 'ms'; }  // 嵌套方式二 function second() {     let startTime = new Date().getTime();      for (let i = 0; i < 10000; i++) {         for (let j = 0; j < 1000; j++) {             for (let k = 0; k < 100; k++) {}         }     }      let endTime = new Date().getTime();      return endTime - startTime + 'ms'; }  console.log(first()); // 382ms console.log(second()); // 501ms 

嵌套方式一

  • i 执行 1 次 j 就会执行 1000 次 k 就会执行 1000 * 10000 次
  • i 执行 100 次 j 就会执行 100 _ 1000 次 k 就会执行 100 _ 1000 * 10000 次
  • 总次数 = i(100) + j(100,000) + k(1,000,000,000) = 1,000,100,100 次

循环体内执行次数为:1,000,100,100 次

嵌套方式二

  • i 执行 1 次 j 就会执行 1000 次 k 就会执行 1000 * 100 次
  • i 执行 10000 次 j 就会执行 10000 _ 1000 次 k 就会执行 10000 _ 1000 * 100 次
  • 总次数= i(10,000) + j(10,000,000) + k(100,000,000) = 110,010,000 次

循环体内执行次数为:110,010,000 次

文章的内容/灵感都从下方内容中借鉴

赞(0) 打赏
未经允许不得转载:张拓的天空 » 第 50 题:为什么 for 循环嵌套顺序会影响性能?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏