定义:同一种类型数据的集合。其实数组就是一个容器。
初始化:
int[] arr = new int[5]; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7};
// 数组反转:
int[] arr = new int[]{12,3,54,16,86};
for(int i = 0; i < arr.length/2; i++){
int temp = arr[i];
arr[i] = arr[arr.length-i-1];
arr[arr.length-i-1] = temp;
}
// 数组冒泡排序:
int[] arr = new int[]{12,3,54,16,86};
for(int i =0; i < arr.length; i++){
for(int j = 0; j < arr.length - i -1; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 数组选择排序:
int[] arr = new int[]{12,3,54,16,86};
for(int i = 0;i<arr.length;i++){
for(int j = i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 数组折半查询:
public static void main(String[] args){
int[] arr = new int[]{3,12,16,54,86};
Scanner scan = new Scanner(System.in);
int key = scan.nextInt();
int loc = locateKey(arr,key);
System.out.println(loc);
}
// 处理方法
public static int locateKey(int[] arr,int key){
int min = 0;
int max = arr.length-1;
int mid;
while(min <= max){
mid = (min + max) / 2;
if(arr[mid] == key){
return mid;
} else if(arr[mid] > key){
max = mid - 1;
} else {
min = mid + 1;
}
}
return -1;
}