二维数组:
就是一个元素为一维数组的数组、
动态初始化方式一(指定有多少个长度相同的一维数组):
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
动态初始化方式二(指定二维数组中有多少个一维数组,每一个一维数组的长度不固定):
数据类型[][] 变量名 = new 数据类型[m][];
注意:
m这个数据必须给出,后面的数据可以不给
arr[0] = new int[2];
arr[0][0] = 1;
arr[0][1] = 2;
二维数组的静态初始化:
静态初始化:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
如果形式参数是基本类型:
形式参数的改变,不影响实际参数。
如果形式参数是引用类型:
形式参数的该变,直接影响实际参数。
冒泡排序:
相邻两个元素进行比较,小的放前面,大的放后面
public class ArraySortDemo {
public static void main(String[] args) {
// 使用冒泡排序给数组int[] arr = { 24, 69, 80, 57, 13 };进行排序
// 创建一个数组
int[] arr = { 24, 69, 64, 23, 67, 45 };
// 第一次排序
/* for (int i = 0; i < arr.length - 1 - 0; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i] = temp;
}
}
// 打印数组
printArr(arr);
// 第二次排序
for (int i = 0; i < arr.length - 1 - 1; i++) {
if (arr[i] > arr[i + 1]) {
// 找一个中间变量
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
// 打印数组
printArr(arr);
// 第三次排序
for (int i = 0; i < arr.length - 1 - 2; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
//打印数组
printArr(arr);
//第四次排序
for (int i = 0; i < arr.length - 1 - 3 ; i++) {
//java.lang.ArrayIndexOutOfBoundsException
if (arr[i]>arr[i+1]) {
//找一个中间变量
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
printArr(arr);*/
System.out.println("-------------------------");
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-j; j++) {
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
printArr(arr);
}
使用Arrays数组工具进行操作:
public class StringSortDemo {
public static void main(String[] args) {
// 使用冒泡排序
String s = "dacgebf";
// 转换为字符数组才能遍历
char[] chs = s.toCharArray();
// 使用Arrays里面的sort()方法给字符数组进行排序
Arrays.sort(chs);
// 打印数组
System.out.println(Arrays.toString(chs));
}
}
// 写一个方法打印数组
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "");
}
System.out.println();
}
}
选择排序:
* 选择排序:
* 从0索引开始,依次和后面的每一个元素进行比较
* 第一次比较完毕,最小值出现在了最小索引处
* 第二次比较完毕,次小值出现在了次小索引处
* ...
* 完毕后,就排序了。