第一篇笔记里面,我说groovy运行的居然还满快的,其实是个误会了。我上次做八皇后还是在8080上面用basic做的,和现在奔四上面的groovy相比是没有意义的。特地又做了个对比试验:
1
intq=92int[] i=newint[q]3intcount=04longt=System.currentTimeMillis();5scan(0)6println("totle results:"+count)7println("totle time:"+(System.currentTimeMillis()-t));8
def scan(n){9
if(n==q){10 println(i.toList())11 count++12return13 }14 i[n]=015
while(i[n]{16 i[n]=i[n]+117if(check(n))18 scan(n+1)19 }20}21
def check(n){22if(n>0)23for(jin0..if(i[j]==i[n]||i[j]-i[n]==j-n||i[j]-i[n]==n-j )25returnfalse26returntrue27}
运行结果是:totle time:7271 (为了用groovy控制台运行的,直接用groovy命令运行还要慢一点)
java呢?
queens.java:
1
publicclassqueens{2staticintq=9;3staticint[] i=newint[q];4staticintcount=0;5
publicstaticvoidm