A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

合理的选择结构可以大大提升代码的执行效率,话不多说,举个小例子:
需求:求符合以下条件的数,除以1余0,除以2余1,除以3余0,除以4余1,除以5余4,除以6余3,除以7余5,除以8余1,除以9余0,刚开始我写的程序是这样的
public static void main(String[] args) {
  int i;
  for (i = 0; i < 100000; i++) {
   if (i % 1 == 0) {
    if (i % 2 == 1) {
     if (i % 3 == 0) {
      if (i % 4 == 1) {
       if (i % 5 == 4) {
        if (i % 6 == 3){
         if (i % 7 == 5) {
          if (i % 8 == 1) {
           if (i % 9 == 0)
            System.out.println(i);
          }
         }
        }
       }
      }
     }
    }
   }
  }
}
不过程序中有不少重复的,然后改成了这样:
public static void main(String[] args) {
  int i;
  for (i = 0; i < 100000; i++) {
   if (i % 5 == 4) {
    if (i % 6 == 3) {
     if (i % 7 == 5) {
      if (i % 8 == 1) {
       if (i % 9 == 0)
        System.out.println(i);
      }
     }
    }
   }
  }
}
这样就简便多了,不过后来发现还可以再优化一下,所以就改成了这样:
public static void main(String[] args) {
  int i;
  for (i = 0; i < 100000; i++) {
   if (i % 9 == 0) {
    if (i % 8 == 1) {
     if (i % 7 == 5) {
      if (i % 6 == 3) {
       if (i % 5 == 4)
        System.out.println(i);
      }
     }
    }
   }
  }
}
}

在c语言中clock()获取时间的数据表明,优化前后运行时间提高了10%-20%左右~(刚接触java,见谅见谅{:2_32:})
优化前:

优化后:


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马