91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現二維數組與稀疏數組互轉

發布時間:2022-04-11 14:26:34 來源:億速云 閱讀:131 作者:iii 欄目:開發技術

這篇文章主要介紹了Java如何實現二維數組與稀疏數組互轉的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java如何實現二維數組與稀疏數組互轉文章都會有所收獲,下面我們一起來看看吧。

    二維數組

    二維數組本質上是以數組作為數組元素的數組,即“數組的數組”,類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。

    稀疏數組

    1、稀疏算法的基本介紹

    當一個數組中大部分元素為0,或者為同一個值的數組時,可以使用稀疏數組來保存該數組。從而減少計算機不必要的內存開銷。

    2、稀疏算法的處理方式

    (1)數組中第一行記錄原始數組中一共有幾行幾列,有多少個不同的值。
    (2)把具有不同值的元素的行列及值記錄在一個小規模的數組中,從而縮小程序的規模。

    二維數組轉稀疏數組的思路

    • 遍歷原始的二維數組,得到有效數據的個數sum,根據sum就可以創建稀疏數組sparseArr int[sum+1][3]

    • 將二維數組的有效數據存入到稀疏數組

    稀疏數組轉原始的二維數組的思路:

    • 先讀取稀疏數組的第一行,根據第一行的數據,創建原始的二維數組,比如上面的chessArr2=int[11][11]

    • 再讀取稀疏數組后幾行的數據,并賦給原始的二維數組即可

    寫一個二維數組:

    //1.創建一個二維數組
    int chessArr1[][]=new int[11][11];
    //2.給二維數組賦值
    chessArr1[1][2]=1;
    chessArr1[2][3]=2;
    //3.雙重for循環輸出二維數組
    System.out.println("原始的二維數組:");
    for (int[] row : chessArr1) {
        for (int data : row) {
            System.out.printf("%d\t",data);
        }
        //每輸出完一個一重數組換一行
        System.out.println();
    }

    將二維數組換換位稀疏數組

    //將二維數組轉稀疏數組
    //1.先遍歷二維數組,得到非0數據的個數,知道數據個數,就可以創建稀疏數組(知道了稀疏數組的行)
    int sum=0;
    for (int i = 0; i < 11; i++) {
        for (int j = 0; j < 11; j++) {
            if (chessArr1[i][j]!=0){
                sum++;
            }
        }
    }
    System.out.println("有效值的個數為:"+sum);
    //2.創立對應的稀疏數組
    int sparseArr[][]=new int[sum+1][3];
    //3.給稀疏數組賦值
    sparseArr[0][0]=11;
    sparseArr[0][1]=11;
    sparseArr[0][2]=sum;
    //4.遍歷二維數組,給稀疏數組
    int count=0;//用于記錄是第幾行
    for (int i = 0; i < 11; i++) {
        for (int j = 0; j < 11; j++) {
            if (chessArr1[i][j]!=0){
                sparseArr[count+1][0]=i;
                sparseArr[count+1][1]=j;
                sparseArr[count+1][2]=chessArr1[i][j];
                count++;
            }
        }
    }
    //5.輸出稀疏數組
    //以下是兩種遍歷方式:
    /*for (int[] ints : sparseArr) {
        for (int anInt : ints) {
            System.out.printf("%d\t",anInt);
        }
        //把一個數組遍歷完之后換一行
        System.out.println();
    }*/
    System.out.println("得到稀疏數組為~~~~~");
    for (int i = 0; i < sparseArr.length; i++) {
        System.out.printf("%d\t%d\t%d\t\n",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);
    }

    將稀疏數組還原為二維數組

    //把稀疏數組還原為二維數組
    //1.創建二維數組
    int chessArr2[][]=new int[sparseArr[0][0]][sparseArr[0][1]];
    //2.給二維數組賦值
    for (int i = 1; i < sparseArr.length; i++) {
        chessArr2[sparseArr[i][0]][sparseArr[i][1]]=sparseArr[i][2];
    }
    //3.輸出二維數組
    for (int[] row : chessArr2) {
        for (int data : row) {
            System.out.printf("%d\t",data);
        }
        System.out.println();
    }

    樹越是向往高處的光亮,它的根就越要向下,向泥土向黑暗的深處。

    關于“Java如何實現二維數組與稀疏數組互轉”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java如何實現二維數組與稀疏數組互轉”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    东安县| 曲靖市| 黑山县| 连南| 新龙县| 炉霍县| 平乐县| 泗洪县| 汉沽区| 高陵县| 呼玛县| 河北省| 江陵县| 博乐市| 英山县| 霍林郭勒市| 黄石市| 甘肃省| 磐安县| 通城县| 平南县| 沙雅县| 元谋县| 和硕县| 固安县| 寻甸| 温泉县| 彭阳县| 库车县| 探索| 北票市| 华池县| 资源县| 永顺县| 灵川县| 绥中县| 沐川县| 乌苏市| 莱阳市| 甘洛县| 保定市|