日常學習筆記~
稀疏陣列(稀疏矩陣)
當乙個陣列中大部分元素為0,或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列
稀疏陣列-優點:稀疏陣列在陣列中存在大量相同元素的情況下,比傳統二維陣列要更節省空間
二維陣列與稀疏陣列(以4行4列為例展示)
二維陣列
0 0 0 0
1 0 6 0
0 0 0 0
稀疏陣列
4 4 2
1 0 1
1 2 6
稀疏陣列的處理思路:
1.記錄原二維陣列共有幾行幾列,有多少個不同的值
2.把具有不同值的元素的行列以及值記錄在乙個小規模的二維陣列中,從而達到縮小原陣列規模的效果
二維陣列 轉 稀疏陣列思路:
1.遍歷原始的二維陣列,得到有效資料的個數
2.根據有效資料的個數建立稀疏陣列,稀疏陣列sparsearr[有效資料個數+1][3]
3.將二維陣列的有效資料存入到稀疏陣列中,其中稀疏陣列第0行儲存的是原二維陣列的行數、列數以及有效資料個數,其餘行儲存的是二維陣列中各有效個數的行、列和值
具體**如下:
int arr[
]=newint[4
][4]
;//二維陣列的建立
//陣列有效資料賦值
arr[1]
[0]=
1; arr[1]
[2]=
6;//遍歷二維陣列,得到有效資料個數
int sum =0;
for(
int i=
0;i<
4;i++)}
}int sparsearr[
]=newint
[sum+1]
[3];
//給稀疏陣列賦值
sparsearr[0]
[0]=
4;sparsearr[0]
[1]=
4;sparsearr[0]
[2]=sum;
//遍歷二維陣列,將非0的值存放到稀疏陣列中
int count=0;
//用於記錄是第幾個非0資料
for(
int i=
0;i<
4;i++)}
}
稀疏陣列恢復為二維陣列擇日更新
未完待續…
稀疏陣列演算法
用於壓縮空間 稀疏陣列練習 1.建立乙個二維陣列 11 11 0 沒有資料可以壓縮 1 表示值1 2 表示值2 int array1 new int 11 11 array1 1 2 1 array1 2 3 2 system.out.println 輸出要壓縮的陣列 for int ints ar...
二 稀疏陣列
先看乙個實際需求,編寫乙個五子棋程式,有存檔和續上盤的功能。當乙個陣列中大部分元素為0,或者為同乙個值時,可以使用稀疏陣列來儲存改陣列。稀疏陣列的處理方法是 使用稀疏陣列,來保留類似前面的二維陣列 棋盤 地圖 把稀疏陣列存檔,並且可以重新恢復原來的二維陣列 整體思路 1.遍歷原始的二維陣列,得到有效...
菜鳥學演算法 廣度優先演算法
廣度優先演算法是在圖中的一種遍歷方法,圖用來模擬一組連線,關係網等等,圖由節點node和邊edge組成,乙個節點可能與眾多節點直接相連,這些節點被稱為鄰居 廣度優先搜尋是一種用於圖的搜尋演算法,可以解決兩類問題,如上圖,a節點有前往到g節點的路徑嗎?a節點前往g節點那條路徑最短?廣度優先搜尋通過不斷...