原理:
每次比較相鄰兩數
小的交換到前面
每輪結束後最大的數交換到最後
口訣: 氣泡排序速記口訣(公升序)
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 陣列名 常量表示式 二維陣列的定義 ...