第七章 二維陣列

2021-10-11 15:24:20 字數 3841 閱讀 3069

原理:

每次比較相鄰兩數

小的交換到前面

每輪結束後最大的數交換到最後

口訣: 氣泡排序速記口訣(公升序)

n 個數字來排隊

兩兩相比大靠後

外層迴圈 n-1

內層迴圈 n-1-i

示例: // 氣泡排序演算法

// 初始化乙個陣列

int nums = ;

system.out.println("排序前:" + arrays.tostring(nums));

// 外層控制輪次(n-1次)

for (int i = 0; i < nums.length - 1; i++)

}} system.out.println("排序後:" + arrays.tostring(nums));

/**

* 工作原理:

* 首先在未排序的數列中找到最大(小)元素,放到排序數列的起始位置

* 然後再從剩餘未排序的元素中繼續查詢最大(小)元素,放到已排序數列的末尾(按照次序),依次類推

* @author zhukang

* */

public class xuanze ;

system.out.println("排序前:" + arrays.tostring(nums));

for (int i = 0; i < nums.length; i++)

}// 將最小值下標對應的元素跟外層每輪迴圈起始下標元素交換

int temp = nums[minindex];

nums[minindex] = nums[i];

nums[i] = temp;

} system.out.println("排序後:" + arrays.tostring(nums));

}}

boolean equals(array1,array2)

比較array1和array2兩個陣列是否相等

sort(array)

對陣列array的元素進行公升序排列

string tostring(array)

將乙個陣列array轉換成乙個字串

void fill(array,val)

把陣列array所有元素都賦值為val

copyof(array,length)

把陣列array複製成乙個長度為length的新陣列,返回型別與複製的陣列一致

int binarysearch(array, val)

查詢元素值val在陣列array中的下標(要求陣列中元素已經按公升序排列)

示例: // arrays工具類對陣列的常用方法

// 1 比較兩個陣列是否相等:equals(陣列1, 陣列2)

int num1 = ;

int num2 = ;

system.out.println("兩個陣列是否相等:" + arrays.equals(num1, num2));

// 2 填充陣列元素:fill(陣列名,填充值)

int num3 = new int[8];

system.out.println("預設值:" + arrays.tostring(num3));

arrays.fill(num3, 4);

system.out.println("填充後:" + arrays.tostring(num3));

// 3 陣列拷貝:copyof(原始陣列, 拷貝新陣列長度) 有返回值(返回跟當前陣列型別一致的新陣列)

int num4 = ;

system.out.println("原始陣列:" + arrays.tostring(num4));

int num5 = arrays.copyof(num4, 8);

system.out.println("拷貝後新陣列1:" + arrays.tostring(num5));

int num6 = arrays.copyof(num4, 3);

system.out.println("拷貝後新陣列2:" + arrays.tostring(num6));

// 4 陣列元素查詢 : binarysearch(目標陣列,元素) 注意前置條件:必須是公升序,返回值是元素在排序後的下標

int num7 = ;

system.out.println("查詢陣列內容:" + arrays.tostring(num7));

arrays.sort(num7);

system.out.println("查詢陣列排序後內容:" + arrays.tostring(num7));

system.out.println("4在陣列中的位置:" + arrays.binarysearch(num7, 4));

// 如果不在陣列中,返回值肯定是小於0

system.out.println("3在陣列中的位置:" + arrays.binarysearch(num7, 2));

// 5 陣列排序:sort 預設公升序

string names = ;

system.out.println("字串陣列排序前:" + arrays.tostring(names));

arrays.sort(names);

system.out.println("字串陣列排序後:" + arrays.tostring(names));

語法:

《資料型別》 [ ][ ] 陣列名 = new 資料型別[陣列二維長度][陣列一維長度];

或者

《資料型別》 陣列名[ ][ ] = new 資料型別[陣列二維長度][陣列一維長度];

注意: 定義二維陣列時,要定義最大維數,一維維度可以不定義,且長度不是必須一致的

二維陣列實際上是乙個以一維陣列做為元素的一維陣列

通過二維陣列名獲取長度,返回的是二維的長度,即有幾個一維陣列

示例: int [ ][ ] scores = new int[5]; -- 正確

int [ ][ ] scores = new int; -- 錯誤

定義並賦值:

int scores = new int, , };

或者int scores = , , };

遍歷二維陣列:

// 外層是二維長度

for (int i = 0; i < scores.length; i++)

system.out.println();

}示例:

// 按規律輸出數字列表

/*** 特殊數列

* 1* 2 6

* 3 7 10

* 4 8 11 13

* 5 9 12 14 15

*/scanner input = new scanner(system.in);

system.out.print("請輸入數列的行數:");

int line = input.nextint();

// 定義二維陣列存放資料

int nos = new int[line][line];

// 定義初始值為1,進行累加

int num = 1;

// 給二維陣列賦值

for (int i = 0; i < nos.length; i++)

} // 遍歷二維陣列,排除預設值0

for (int i = 0; i < nos.length; i++)

system.out.print(nos[i][j] + " ");

}system.out.println();

} input.close();

第七章 陣列

陣列js陣列可以存放任何類資料型別書寫方法 定義式 var arr1 new array var arr2 new array 3 建立乙個長度為3的陣列 var arr3 new array 1,2,3 建立乙個內容為1,2,3的陣列 表示式 var arr 推薦寫法陣列是什麼資料型別陣列是obj...

第七章 陣列

1,逆序輸出語句public class sentencs 2,找出陣列下標public class num arrays.sort score system.out.println 最低積分是 score 0 下標最低即為最低值 int index arrays.binarysearch scor...

第七章 字元陣列

用來存放字元資料的陣列是字元陣列,常用來處理字串.字元陣列其實就是型別為char的陣列.同其他型別的陣列一樣,字元陣列既可以是一維的,也可以是二維的甚至是多維的.但是由於字元陣列和普通的陣列具有差異,因此將單獨講解字元陣列.本章內容如下 一維陣列的定義 char 陣列名 常量表示式 二維陣列的定義 ...