稀疏陣列邏輯框架
(該陣列共有6行7列,有8個有效值)
1.隨機建立個二維陣列
//1.建立乙個二維陣列11*11
int[
] array1 =
newint[11
][11]
; array1[1]
[2]=
1;//設定第一行第二列的值為1
array1[2]
[3]=
5;//設定第二行第三列的值為5
2.輸出原始的陣列for
3.轉為稀疏陣列儲存,查出有效值的個數
//轉換為稀疏陣列儲存
int sum =0;
//獲取有效值的個數
for(
int i=
0;i<
11;i++)}
} system.out.
println
("有效值得個數"
+sum)
;
4.建立稀疏陣列並實現轉換//建立乙個稀疏陣列的陣列
int[
] array2 =
newint
[sum+1]
[3];
//建立乙個行為有效值得行+1(第一行要統計,所以+1) 列為3的稀疏陣列
array2[0]
[0]=
11;//第一行第一列表示總共有11行
array2[0]
[1]=
11;//第二行第二列表示總共有11列
array2[0]
[2]=sum;
//第一行第三列為有效值總數
int count =0;
//遍歷二維陣列,將非零的值,存放稀疏陣列中
for(
int i =
0;i}//輸出稀疏陣列
system.out.
println
("稀疏陣列");
5.還原,將稀疏陣列還原為原始陣列
//讀取稀疏陣列
int[
] array3 =
newint
[array2[0]
[0]]
[array2[0]
[1]]
;//給其中的元素還原它的值
for(
int i=
1;i)//因為array2第一行是宣告的不用寫 所以從i=1開始
system.out.
println
("輸出還原的陣列");
(時間複雜度n2)
int emap;
//定義臨時容器
int[
] arrey =
;//隨便定義乙個陣列
for(
int i =
0; i < arrey.length-
1;i++
)//外層迴圈,判斷我們要走多少次,因為每走一次迴圈只能完成乙個數的正確位置,例如第一次迴圈實現第乙個數最小,第二次實現第二個數最小..........}}
system.out.
println
(arrays.
tostring
(arrey));
是arrays類裡面的乙個方法,相當於把陣列遍歷。
}
稀疏陣列實質其實就是兩個陣列之前的轉換,只要搞清楚有效值所在的行和列就能完美的實現轉換。如果同乙個陣列中擁有大量重複的數字,就可以用稀疏陣列將其轉換,這樣轉換後減輕了使用者的查詢,不容易漏掉導致出錯! 氣泡排序與稀疏陣列
比較陣列arr中兩個相鄰元素的大小,若arr i 1 arr i 將這兩數交換位置 每次比較都會產生大的和小的數 下一輪比較可以少排一次序 依次迴圈,直到結束 public static void main string args int sort sort arr 呼叫方法 system.out....
氣泡排序演算法詳解及優化
排序原理 比較兩個相鄰的元素,將值大的元素交換至右端,小的元素向上冒泡,這也是冒泡演算法名稱的由來。排序流程如下 1 對陣列中的各資料,依次比較相鄰的兩個元素大小,即第0和第1個比較,第1個和第2個比較.第n 2個和和第n 1個比較,每次比較中如 果前面的大於後面的就交換,這樣第一輪即n次比較後,最...
氣泡排序演算法 C 氣泡排序演算法排序詳解
氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...