内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

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

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了博州免費建站歡迎大家使用!

今天復(fù)習(xí)下稀疏數(shù)組相關(guān)思想。

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

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

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

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

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

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

將原始數(shù)組中的非默認(rèn)值以及其坐標(biāo)記錄在稀疏數(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ù)組轉(zhuǎn)換為洗漱數(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("-------------------------------------------恢復(fù)后的二維數(shù)組---------------------------------");
    for (int row[] : chessArr1) {
      for (int data : row) {
        System.out.printf("%d\t", data);
      }
      System.out.println();
    }

  }
}

輸出結(jié)果如下:

-------------------------------------------原始二維數(shù)組-------------------------------
0  0  0  0  0  0  0  0  0  0  0 
0  0  1  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  2  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  2  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
sum = 3
-------------------------------------------稀疏數(shù)組---------------------------------
11 11 3 
1  2  1 
3  3  2 
5  1  2 
-------------------------------------------恢復(fù)后的二維數(shù)組---------------------------
0  0  0  0  0  0  0  0  0  0  0 
0  0  1  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  2  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  2  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 
0  0  0  0  0  0  0  0  0  0  0 

看完上述內(nèi)容,是不是對Sparsearray稀疏數(shù)組的使用方法有進一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:Sparsearray稀疏數(shù)組的使用方法
文章路徑:http://www.rwnh.cn/article46/jscceg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作虛擬主機、做網(wǎng)站、網(wǎng)站維護品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
大田县| 彩票| 灵山县| 绥芬河市| 邵东县| 长子县| 雷州市| 岳西县| 临泉县| 凉城县| 天津市| 泰顺县| 库尔勒市| 杂多县| 勃利县| 汉川市| 扶沟县| 栾川县| 浏阳市| 特克斯县| 双柏县| 诸城市| 金门县| 凤山市| 防城港市| 井陉县| 苏州市| 周口市| 南昌县| 宁远县| 嘉黎县| 安平县| 平顶山市| 佛坪县| 兴文县| 铜川市| 耒阳市| 五指山市| 通江县| 远安县| 托里县|