嵌套for循環優化最佳實踐

		for(int i=0;i<1000;i++){
			for(int j=0;j<100;j++){
				for(int k =0;k<10;k++){
					function(i,j,k);
				}
			}
		}

要求對於以上嵌套循環進行優化

依然按照操作時間進行性能判斷


	public static void main(String[] args) {
	
		System.out.println(stayTime1());
		System.out.println(stayTime2());
		System.out.println(stayTime3());
		System.out.println(stayTime4());
	}

	public static long stayTime1(){
		long start = System.nanoTime();
		for(int i=0;i<1000;i++){
			for(int j=0;j<100;j++){
				for(int k =0;k<10;k++){
					System.out.print("");
				}
			}
		}
		return System.nanoTime()-start;
	}
	
	public static long stayTime2(){
		long start = System.nanoTime();
		for(int k=0;k<10;k++){
			for(int j=0;j<100;j++){
				for(int i =0;i<1000;i++){
					System.out.print("");
				}
			}
		}
		return System.nanoTime()-start;
	}
	public static long stayTime3(){
		long start = System.nanoTime();
		int k,i,j;
		for( k=0;k<10;k++){
			for( j=0;j<100;j++){
				for( i =0;i<1000;i++){
					System.out.print("");
				}
			}
		}
		return System.nanoTime()-start;
	}
	public static long stayTime4(){
		long start = System.nanoTime();
		int k=0,i=0,j=0;
		for(;k<10;k++){
			for(;j<100;j++){
				for(;i<1000;i++){
					System.out.print("");
				}
			}
		}
		return System.nanoTime()-start;
	}

最終輸出結果爲:

109976404
91822919
72580384
115655

可以發現第四種方法可以最大限度的提高運算效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章