一、数组的应用:
1、将一组数据进行排序:
(1)使用方法 -----> 两种:
a、冒泡排序法
中心思想:将这组中的前一个数与后一个数进行比较,最先确定最大值
b、选择排序法
中心思想:将这组中的第一个数与后每一个数进行比较,最先确定最小值
2、在一组数中查找某个数的索引:
(1)使用方法 -----> 两种:
a、普通查找法 ------> 遍历数组,比较每一个对象
public static int searchNumber(int[] arr,int number){
for(int i=0;i<arr.length;i++){
if(arr[i]==number){
return index;
}
}
}
b、二分查找法 -----> 必须是一组有序的数据
注意:其中的min、mid、max指的是数组的下标
public static int searchNumber(int[] arr,int number){
int min=0;
int max=arr.length;
int mid=(min+max)/2;
while(number!=arr[mid]){
if(number>arr[mid]){
min=mid+1;
}else if(number<arr[mid]){
max=mid-1;
}
if(max<min){
return -1;
}
mid=(min+max)/2;
}
return mid;
}
/* 方法二 */
public static int searchNumber(int[] arr,int number){
int min=0;
int max=arr.length;
while(mid<=max){
mid=(mid+max)/2;
if(number>arr[mid]){
min=mid+1;
}else if(number<arr[mid]){
max=mid-1;
}else{
return mid;
}
}
return -1;
}
3、数组反转:
/* 方法一 */
public static void reverse(int[] arr){
for(int start=0,end=arr.length-1;start<end;start++,end--){
int temp = arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
/* 方法二 */
public static void reverse(int[] arr){
for(int start=0;start<arr.length/2;start++){
int temp = arr[start];
arr[start]=arr[arr.length-1-start];
arr[arr.length-1-start]=temp;
}
}