最近剛開始學資料結構,學到了二維陣列和稀疏陣列。
二維陣列轉稀疏陣列的思路:
1、遍歷原始的二維陣列,得到有效資料的個數sum
2、根據sum,得知稀疏陣列的sparsearray int[sum+1][3]
3、將二維陣列的有效資料存入稀疏陣列
稀疏陣列轉成原始的二維陣列思路:
1、根據稀疏陣列的第一行資料,得知二維陣列的長度和資料出現次數
2、遍歷 稀疏陣列,根據稀疏陣列的資料放入二維陣列
直接上**
public class sparsearray
system.out.println();
}//2、獲取資料出現次數
int num = 0;
for (int anint : ints) }}
//3、建立稀疏陣列
int sparsearray = new int[num + 1][3];
sparsearray[0][0] = ints.length;
sparsearray[0][1] = ints.length;
sparsearray[0][2] = num;
// 4、讀取資料,賦值給稀疏陣列
//count 標記有資料的行
int count = 0;
for (int i = 0; i < ints.length; i++) }}
system.out.println("稀疏陣列***************==");
for (int ints2 : sparsearray)
system.out.println();
}// 寫人檔案
filewrite(sparsearray);
int sparsearrays = fileread();
//稀疏陣列 轉二維陣列
int newints =new int[sparsearrays[0][0]][sparsearrays[0][1]];
system.out.println("讀取後稀疏陣列***************==");
for (int i=1;iints1 = new arraylist<>();
while ((line = bufferedreader.readline()) != null)
int ints2 = new int[falg];
for (int i = 0; i < strings.length; i++)
ints1.add(ints2);
}int sparsearr = new int[ints1.size()][falg];
for (int i = 0; i < ints1.size(); i++)
}return sparsearr;
}//讀取稀疏陣列 寫入檔案
public static void filewrite(int sparsearray) throws ioexception
bufferedwriter.write("\n");
}bufferedwriter.flush();
bufferedwriter.close();
filewriter.close();
}
二維陣列轉換為稀疏陣列
二維陣列轉換為稀疏陣列 二維陣列轉換稀疏陣列的思路 1.遍歷原始的二維陣列,得到有效資料的個數sum sum有多少個,稀疏陣列就有sum 1行 2.根據sum的個數建立稀疏陣列sparsearray int sum 1 3 列為固定值,行不確定 3.將二維陣列的有效資料放入稀疏陣列中 0 0 0 1...
稀疏陣列與二維陣列的轉換
稀疏陣列的使用場景 當乙個陣列中大部分元素為0,或者為同乙個值的時候,可以使用稀疏陣列來儲存該陣列。比如這樣乙個陣列,裡面除了1和2之外其餘全為0。比如下面這張圖 左邊二維陣列為6行7列,其中有8個非零的值,所以將 6,7,8 存在第0行 後面開始記錄原二維陣列有效資料的位置,比如有效資料22,其位...
稀疏陣列(與二維陣列互相轉換)
二維陣列的省記憶體的儲存方法,一般是n行3列,三列分別為行,列,值。二維陣列轉稀疏陣列 1.遍歷整個二維陣列,檢視有多少個有效數字 2.根據有效數字的個數,建立稀疏陣列 3.遍歷二維陣列,將有效的數字放入稀疏陣列中稀疏陣列轉二維陣列 1.根據稀疏陣列第一行建立空二維陣列 2.讀取稀疏陣列後幾行資料,...