国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

減小程序規(guī)模!稀疏數(shù)組Sparsearray,數(shù)據(jù)結(jié)構(gòu)二維數(shù)組與稀疏數(shù)組轉(zhuǎn)換,Java實現(xiàn)

jonh_felix / 2143人閱讀

摘要:文章目錄基本介紹應用實例基本介紹當一個數(shù)組中大部分元素為,或者為同一個值的數(shù)組時,可以使用稀疏數(shù)組來保存該數(shù)組。把具有不同值的元素的行列及值記錄在一個小規(guī)模的數(shù)組中,從而縮小程序的規(guī)模。


基本介紹

當一個數(shù)組中大部分元素為0,或者為同一個值的數(shù)組時,可以使用稀疏數(shù)組來保存該數(shù)組。

稀疏數(shù)組的處理方法是:
①記錄數(shù)組一共有幾行幾列,有多少個不同的值(0除外)。
②把具有不同值的元素的行列及值記錄在一個小規(guī)模的數(shù)組中,從而縮小程序的規(guī)模。


二維數(shù)組轉(zhuǎn)稀疏數(shù)組:
①遍歷原始的二維數(shù)組,得到有效數(shù)據(jù)的個數(shù) sum(除0外不同值)
②根據(jù) sum 創(chuàng)建稀疏數(shù)組 sparseArr int[sum+1][3]
③將二維數(shù)組的有效數(shù)據(jù)數(shù)據(jù)存入到稀疏數(shù)組
(稀疏數(shù)組的第一行,三列分別記錄二維數(shù)組的行、列、有效數(shù)據(jù)個數(shù))
(后面的行記錄有效數(shù)據(jù)元素,三列分別記錄行、列、有效數(shù)據(jù)元素值)

稀疏數(shù)組轉(zhuǎn)二維數(shù)組:
①先讀取稀疏數(shù)組的第一行,根據(jù)第一行的數(shù)據(jù),創(chuàng)建原始的二維數(shù)組
②再讀取稀疏數(shù)組后幾行的數(shù)據(jù),并賦給原始的二維數(shù)組即可


應用實例

使用稀疏數(shù)組,來保留二維數(shù)組(棋盤、地圖等等),把稀疏數(shù)組存盤,并且可以重新恢復為原來的二維數(shù)組數(shù)。

如下為一個棋盤通過二維數(shù)組轉(zhuǎn)換為稀疏數(shù)組加以存盤和復盤:

1、創(chuàng)建原始二維數(shù)組并輸出

		//創(chuàng)建一個原始的二維數(shù)組11*11,0表示無子,1表示黑子,2表示藍子        int[][] chessArr1 = new int[11][11];        chessArr1[1][2] = 1;        chessArr1[2][3] = 2;        //輸出原始二維數(shù)組        for (int[] row : chessArr1){            for (int data : row){                System.out.print(data + "/t");            }            System.out.println();        }


2、將二維數(shù)組轉(zhuǎn)換為稀疏數(shù)組

		//將二維數(shù)組轉(zhuǎn)換為稀疏數(shù)組        //先遍歷二維數(shù)組,得到非0數(shù)據(jù)的個數(shù)        int sum = 0;        for (int i = 0; i < chessArr1.length; i++) {            for (int j = 0; j < chessArr1[i].length; j++) {                if (chessArr1[i][j] != 0) sum++;            }        }        //創(chuàng)建對應的稀疏數(shù)組并賦值        int[][] sparseArr = new int[sum + 1][3];        sparseArr[0][0] = 11;        sparseArr[0][1] = 11;        sparseArr[0][2] = sum;        int count = 0; //用于記錄賦值到第幾行        for (int i = 0; i < chessArr1.length; i++) {            for (int j = 0; j < chessArr1[i].length; j++) {                if (chessArr1[i][j] != 0) {                    count++;                    sparseArr[count][0] = i;                    sparseArr[count][1] = j;                    sparseArr[count][2] = chessArr1[i][j];                }            }        }        //輸出稀疏數(shù)組        for (int[] row : sparseArr){            for (int data : row){                System.out.print(data + "/t");            }            System.out.println();        }

3、將稀疏數(shù)組轉(zhuǎn)回二維數(shù)組

        //將稀疏數(shù)組轉(zhuǎn)換為二維數(shù)組        int[][] chessArr2 = new int[sparseArr[0][0]][sparseArr[0][1]];        //讀取賦值        for (int i = 1; i < sparseArr.length; i++) {            chessArr2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];        }        //輸出        for (int[] row : chessArr2){            for (int data : row){                System.out.print(data + "/t");            }            System.out.println();        }

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/122182.html

相關文章

  • V8引擎是如何工作?

    摘要:是開發(fā)的引擎它是開源的,而且是用編寫的。本文的目的是展示和理解如何工作,以便為客戶端或服務器端應用程序生成優(yōu)化的代碼。將如何處理這種情況事實上,每當構(gòu)造函數(shù)聲明一個屬性并跟蹤隱藏類的變化時,就會創(chuàng)建一個新的隱藏類。 V8是google開發(fā)的JavaScript引擎, 它是開源的 ,而且是用C++編寫的。它是用于客戶端(Google Chrome)和服務器端(node.js)JavaSc...

    不知名網(wǎng)友 評論0 收藏0
  • JavaScript 闖關記》之數(shù)組

    摘要:針對非稀疏數(shù)組,該屬性就是數(shù)組元素的個數(shù)。否則,使用數(shù)組元素之前應該先檢測它們。如果數(shù)組同時擁有對象屬性和數(shù)組元素,返回的屬性名很可能是按照創(chuàng)建的順序而非數(shù)值的大小順序。并且,每個全局對象有自己的一組構(gòu)造函數(shù)。 數(shù)組是值的有序集合。每個值叫做一個元素,而每個元素在數(shù)組中有一個位置,以數(shù)字表示,稱為索引。 JavaScript 數(shù)組是無類型的,數(shù)組元素可以是任意類型,并且同一個數(shù)組中的不...

    daryl 評論0 收藏0
  • JS基礎06「數(shù)組

    摘要:為了維持此規(guī)則不變化,數(shù)組有兩個特殊的行為。運算符對數(shù)組返回并且對于除了函數(shù)以外的所有對象都是如此。解決方案是檢查對象的類屬性,對數(shù)組而言該屬 數(shù)組 數(shù)組是值的有序集合。每個值叫做一個元素,而每個元素在數(shù)組中有一個位置,以數(shù)字表示,稱為索引。 JavaScript 數(shù)組是無類型的,數(shù)組元素可以是任意類型,并且同一個數(shù)組中的不同元素也可能有不同的類型。數(shù)組的元素甚至也可能是對象或其他數(shù)組...

    forrest23 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<