数组
1.数组的初始化
* a:动态初始化 只指定长度,由系统给出初始化值
* int[] arr = new int[5];
* 数据类型[] 数组名 = new 数据类型[数组长度];
* b:静态初始化 给出初始化值,由系统决定长度
* 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
* 简化格式: 数据类型[] 数组名 = {元素1,元素2,…};
2.数组操作的两个常见小问题
* a:ArrayIndexOutOfBoundsException:数组索引越界异常
* 原因:你访问了不存在的索引。
* b:NullPointerException:空指针异常
* 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
数组冒泡排序
public static void bubblesort(int[] arr){
for (int i = 0 ;i < arr.length - 1;i++){
for (int j = 0;j < arr.length - 1-i;j++){
if (arr[j] > arr[j +1]){
int temp = arr[j +1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
数组选择排序
public static void selectsort(int[] arr){
for (int i =0;i<arr.length -1;i++){
for (int j =i;j<arr.length -1;j++){
if (arr[i] >arr[j+1]){
int temp = arr[i];
arr[i] =arr[j+1];
arr[j+1] = temp;
}
}
}
}
数组二分查找
public static int binarysearch(int[] arr,int value){
int min = 0;
int max = arr.length-1;
int mid =(min + max)/2;
while (arr[mid] != value){
if (max <= min)
return -1;
if (value > arr[mid]){
min = mid +1;
} else {
max = mid - 1;
}
mid =(min + max)/2;
}
return mid;
}
Arrays
toString() sort() BinarySearch()
BinarySearch() 使用前提,数组排好序,若查不到,则输出:(-插入点-1)