真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Sparsearray稀疏數(shù)組的使用方法-創(chuàng)新互聯(lián)

這篇文章主要講解了Sparsearray稀疏數(shù)組的使用方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

成都網(wǎng)站設計、成都網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向1000多家企業(yè)提供了,網(wǎng)站設計,網(wǎng)站制作,網(wǎng)絡營銷等服務!設計與技術結合,多年網(wǎng)站推廣經(jīng)驗,合理的價格為您打造企業(yè)品質網(wǎng)站。

今天復習下稀疏數(shù)組相關思想。

問題引入:編寫的五子棋程序中,有存盤退出和續(xù)上盤的功能。

Sparsearray稀疏數(shù)組的使用方法

如上圖所示二維數(shù)組,大多值是默認值(0),所以記錄大量無意義的數(shù)據(jù)意義不大,此時可以引入稀疏數(shù)組。

稀疏數(shù)組介紹:當一個數(shù)組大部分元素為固定值時,可以使用稀疏數(shù)組來保存類似數(shù)組;

稀疏數(shù)組處理思路:

稀疏數(shù)組記錄二維數(shù)組的行列數(shù)以及非默認值數(shù)目;

將原始數(shù)組中的非默認值以及其坐標記錄在稀疏數(shù)組中,從而減小文件容量;

public class SparseArray {
  public static void main(String[] args) {
    // 創(chuàng)建原始二維數(shù)組(0 表示無子,1 表示黑子 2 表示 白子)
    int chessArr1[][] = new int[11][11];
    chessArr1[1][2] = 1;
    chessArr1[3][3] = 2;
    chessArr1[5][1] = 2;
    // 使用 for 循環(huán)遍原始二維數(shù)組
    System.out.println("-------------------------------------------原始二維數(shù)組---------------------------------");
    for (int row[] : chessArr1) {
      for (int data : row) {
        System.out.printf("%d\t", data);
      }
      System.out.println();
    }
    // 將二維數(shù)組轉換為洗漱數(shù)組
    // 獲取原始二維數(shù)組非零數(shù)目
    int sum = 0;
    for (int i = 0; i < chessArr1.length; i++) {
      for (int j = 0; j < chessArr1.length; j++) {
        if (chessArr1[i][j] != 0) {
          sum++;
        }
      }
    }
    System.out.println("sum = " + sum);

    // 創(chuàng)建稀疏數(shù)組
    int sparseArr[][] = new int[sum + 1][3];
    // 為稀疏數(shù)組賦值
    sparseArr[0][0] = chessArr1.length;
    sparseArr[0][1] = chessArr1.length;
    sparseArr[0][2] = sum;
    // 便利原始二維數(shù)組,進行存放
    int n = 0;
    for (int i = 0; i < chessArr1.length; i++) {
      for (int j = 0; j < chessArr1.length; j++) {
        if (chessArr1[i][j] != 0) {
          n++;
          sparseArr[n][0] = i;
          sparseArr[n][1] = j;
          sparseArr[n][2] = chessArr1[i][j];
        }
      }
    }
    // 遍歷稀疏數(shù)組
    System.out.println("-------------------------------------------稀疏數(shù)組---------------------------------");
    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]);
    }
    // 將稀疏數(shù)組還原為原始二維數(shù)組
    int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
    for (int i = 1; i < sparseArr.length; i++) {
      chessArr2[chessArr2[i][0]][chessArr2[i][1]] = chessArr2[i][2];
    }
    System.out.println("-------------------------------------------恢復后的二維數(shù)組---------------------------------");
    for (int row[] : chessArr1) {
      for (int data : row) {
        System.out.printf("%d\t", data);
      }
      System.out.println();
    }

  }
}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享文章:Sparsearray稀疏數(shù)組的使用方法-創(chuàng)新互聯(lián)
文章鏈接:http://weahome.cn/article/djssgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部