1. 程式人生 > >java學習之旅-6

java學習之旅-6

自增 tro pri 只需要 循環嵌套 java 問題 定義 一次

有關for循環嵌套問題的優化:

for(int i = 0;i < 1000;i ++)
{
        for(int j = 0;j < 100;j ++)
        {
                for(int k = 0;k < 10;k ++)
                {
                        System.out.println("(" + i + "," + j + "," + k + ")");
                }}}

i,j,k分別:
定義了1,1000,100000次;
初始化了1,1000,100000次;
自增了1000,100000,1000000次。

想要優化此代碼,則需要盡可能地減少運算次數。其實i,j,k定義其實只需要一次,上面的代碼可以這樣改:

int i,j,k;
for(i = 0;i < 1000;i ++)
{
        for(j = 0;j < 100;j ++)
        {
                for(k = 0;k < 10;k ++)
                {
                        System.out.println("(" + i + "," + j + "," + k + ")");
                }}}

i,j,k分別:
定義了1,1,1次;(定義次數減少了)
初始化了1,1000,100000次;
自增了1000,100000,1000000次。

其實,除了減少定義次數外,還可以減少初始化次數,代碼如下:

int i,j,k;
for(i = 0;i < 10;i ++)
{
        for(j = 0;j < 100;j ++)
        {
                for(k = 0;k < 1000;k ++)
                {
                        System.out.println("(" + k + "," + j + "," + i + ")");//交換i和k的位置,保證結果不發生改變。
                }}}

i,j,k分別:
定義了1,1,1次;
初始化了1,10,1000次;(初始化次數減少了)
自增了1000,100000,1000000次。


這樣優化之後,代碼的效率就提高了很多。

java學習之旅-6