解决方案 »

  1.   

    一般编程时并不需要去考虑这种问题,目前我知道的也就是考虑这种提高效率的方法,这篇文章写得挺好,推荐你看下:http://my.oschina.net/coda/blog/35672
      

  2.   

    可以考虑将顺序执行的程序改为多线程并发执行,比如 清算 顾客 手中100只股票的总值,需要每支股票的单价*数量,单价从webservice获取,如果循环顺序获取的话,时间肯定很长,可以多线程并发计算,时间可以大大缩短!
      

  3.   

    大循环放外面跟放里面有什么区别吗,都是O(mn)啊。感觉跟实际算法有关,有的算法只能使用循环,有的就可以不适用循环吧。比如矩阵乘法的时间复杂度为O(n^3)但可以将时间复杂度降为O( n^2.376 )
      

  4.   

    具体要看你想解决的问题是什么了。需要从算法角度解决这种loop问题。比如一些暴力法是O(N^2), 但binary search, dp,很多算法都可以将时间缩短到log,或者线性
      

  5.   

    JVM在每次数组访问的时候都是要进行越界检查的, 
    假设 j = t sec * (vm); 
    for'nest = j*j = (t+vm)*(t+vm) 
    for'all = (j*j)i次方 
    根据极限定理,在j<一个临界值(是根据j和i的比例)的情况下,外循环大,速度快!