选择排序
选择排序的思想
- 每轮选择当前位置,开始找出后面的较小值与该位置交换
选择排序的关键
- 确定总共需要选择几轮: 数组的长度-1
- 控制每轮从以前位置为基准,与后面元素选择几次。
public static void main(String[] args){
int[] arr = {5,1,3,2};
//第一循环控制选择几轮
for (i = 0;i < arr.length - 1;i++){
for(j = i + 1;j < arr.length;j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
二分查找
- 二分查询性能好,二分查找的前提是必须是排好序的数据。
- 二分查找相当于每次去掉一半的查找范围。
public static void main(String[] args){
int[] arr = {10,14,16,25,28,30,35,88,100};
System.out.println(binarySearch(arr,25));
}
public static int binarySearch(int[] arr,int data){
int left = 0;
int right = arr.length-1;
while(left <= right){
int mid = (left + right)/2;
if(data > arr[mid]){
left = mid + 1;
}else if(data < arr[mid]){
right = mid -1;
}else{
return mid;
}
}
return -1;//未找到
}