合理的选择结构可以大大提升代码的执行效率,话不多说,举个小例子:
需求:求符合以下条件的数,除以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:})
优化前:
优化后:
|
|