1 稀疏陣列

2022-09-07 11:54:10 字數 3757 閱讀 1585

在乙個陣列中, 大部分的元素為同乙個值,可以用稀疏陣列來儲存該陣列

壓縮陣列

記錄陣列一共有幾行幾列 有多少不同值

把具有不同值的行列及其值記錄在乙個小規模陣列中 從而縮小陣列規模

二維陣列轉稀疏陣列的思路

1.遍歷原始的二維陣列,得到有效資料的個數sum

2.根據sum就可以建立稀疏陣列sparsearr int[sum+1] [3]

3.將二維陣列的有效資料資料存入到稀疏陣列

稀疏陣列轉原始的二維陣列的思路

1.先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,比如上面的chessarr2 = int [11][11]

2.在讀取稀疏陣列後幾行的資料,並賦給原始的二維陣列即可.

package com.company.sparsearray;

import j**ax.sound.midi.soundbank;

import j**a.lang.reflect.array;

import j**a.util.concurrent.forkjoinpool;

/** * @function :

* date 2021/5/8 - 14:28

* how :

*/public class sparsearray

system.out.println();

}//遍歷陣列 得到非0的資料個數

int sum = 0;

for (int row : chessarray) }}

system.out.println("有效資料個數"+sum);

system.out.println("-----------------------------------------");

//建立稀疏陣列

int sparsearray = new int[sum+1][3];

//稀疏陣列賦值

sparsearray[0][0] = 11;

sparsearray[0][1] = 11;

sparsearray[0][2] = sum;

//遍歷陣列 將非零的資料存入

int count = 0;

for (int i = 0; i < 11; i++) }}

system.out.println();

system.out.println("得到的稀疏陣列為:");

for (int row : sparsearray)

system.out.println();

}system.out.println();

system.out.println("-----------------------------------------");

//將稀疏陣列恢復為二維陣列

int arrayrow = sparsearray[0][0];

int arraycol = sparsearray[0][1];

int chessarray2 = new int[arrayrow][arraycol];

system.out.println("恢復後的二維陣列:");

for (int i = 1; i 結果:

附:包含io**

package com.company.sparsearray;

import j**ax.sound.midi.soundbank;

import j**a.io.*;

import j**a.lang.reflect.array;

import j**a.util.concurrent.forkjoinpool;

/** * @function :

* date 2021/5/8 - 14:28

* how :

*/public class sparsearray

system.out.println();

}//遍歷陣列 得到非0的資料個數

int sum = 0;

for (int row : chessarray) }}

system.out.println("有效資料個數"+sum);

system.out.println("-----------------------------------------");

//建立稀疏陣列

int sparsearray = new int[sum+1][3];

//稀疏陣列賦值

sparsearray[0][0] = 11;

sparsearray[0][1] = 11;

sparsearray[0][2] = sum;

//遍歷陣列 將非零的資料存入

int count = 0;

for (int i = 0; i < 11; i++) }}

system.out.println();

system.out.println("得到的稀疏陣列為:");

for (int row : sparsearray)

system.out.println();

}system.out.println();

system.out.println("-----------------------------------------");

//將稀疏陣列恢復為二維陣列

int arrayrow = sparsearray[0][0];

int arraycol = sparsearray[0][1];

int chessarray2 = new int[arrayrow][arraycol];

system.out.println("恢復後的二維陣列:");

for (int i = 1; i

for (int row : chessarray2)

system.out.println();

}//持久化

file file = null;

filewriter out = null;

try

out.write('\n');

}} catch (ioexception e) finally

} catch (ioexception e)

system.out.println("持久化成功!");

}// 讀取持久化

bufferedreader in = null;

int row = 0;

string line = null;

int arr = new int [3][3];

try

row++;

}} catch (filenotfoundexception e) catch (ioexception e) finally catch (ioexception e) }}

for (int row1 : arr)

system.out.println();}}

}

1 稀疏陣列

建立乙個原始的二維陣列 11 11 0 表示沒有棋子,1 表示 黑子 2 表藍子 int chessarr1 new int 11 11 行列 chessarr1 1 2 1 chessarr1 2 3 2 chessarr1 4 5 2 輸出原始的二維陣列 system.out.println 原...

資料結構 1 稀疏陣列

在使用二維陣列儲存資料時,如果儲存的非預設值 比如 int 型別的預設值是0 的個數少於整個二維陣列的大小時,就可以考慮使用稀疏陣列來減少記憶體使用空間 稀疏陣列的第一維是普通陣列的一維長度二維長度和非預設元素個數 其他維是非預設元素的一維下標二維下標和元素值 獲取普通陣列的一維和二維的長度,以及非...

稀疏陣列,稀疏矩陣概念

稀疏矩陣 矩陣中非零元素的個數遠遠小於矩陣元素的總數,並且非零元素的分布沒有規律,通常認為矩陣中非零元素的總數比上矩陣所有元素總數的值小於等於0.05時,則稱該矩陣為稀疏矩陣 sparse matrix 該比值稱為這個矩陣的稠密度。稀疏陣列 稀疏陣列可以看做是普通陣列的壓縮,但是這裡說的普通陣列是值...