01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)
Posted Steve--DZC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)相关的知识,希望对你有一定的参考价值。
Java的经典排序--选择排序--冒泡排序--折半查找
选择排序
选择排序 | 3 | 2 | 1 | 5 | 8 |
---|---|---|---|---|---|
0 | 1 | 3 | 2 | 5 | 8 |
1 | 1 | 2 | 3 | 5 | 8 |
2 | 1 | 2 | 3 | 5 | 8 |
3 | 1 | 2 | 3 | 5 | 8 |
public static void main(String[] args) {
int[] arr={3,2,1,5,8};
selectSort(arr);
for(int i = 0 ; i < arr.length ; i ++){
System.out.println(arr[i]) ;
}
}
//选择排序
public static void selectSort(int[] arr){
for(int i = 0 ; i < arr.length - 1 ; 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 ;
}
}
}
}
冒泡排序(大数下沉)
冒泡排序 | 3 | 2 | 1 | 5 | 8 |
---|---|---|---|---|---|
0 | 2 | 1 | 3 | 5 | 8 |
1 | 1 | 2 | 3 | 5 | 8 |
2 | 1 | 2 | 3 | 5 | 8 |
3 | 1 | 2 | 3 | 5 | 8 |
public static void main(String[] args) {
int[] arr={3,2,1,5,8};
bubbleSort(arr);
for(int i = 0 ; i < arr.length ; i ++){
System.out.println(arr[i]) ;
}
}
//冒泡排序大数下沉
public static void bubbleSort(int[] arr){
//需要比较多少轮
for(int i = 0 ; i < arr.length - 1 ; i ++){
//每一轮需要比较多少次
for(int j = 0 ; j < arr.length - 1 - 1; j ++){
if(arr[j] > arr[j + 1]){
int temp = arr[j] ;
arr[j] = arr[j + 1] ;
arr[j + 1] = temp ;
}
}
}
}
折半查找
折半查找 | 3 | 2 | 1 | 5 | 8 |
---|---|---|---|---|---|
3 | 1 | 2 | 3 | 5 | 8 |
public static void main(String[] args) {
int index = binarySearch(arr , 9);
System.out.println(index) ;
}
//折半查找
public static int binarySearch(int[] arr , int n){
int start = 0 ;//起始值
int end = arr.length - 1 ;//末尾值
while(start <= end){
//中间那个值
int mid = (start + end) / 2 ;
if(arr[mid] ==n){
return mid ;
}
//值如果在左边
else if(arr[mid] > n ){
end = mid - 1 ;
}
//值在右边
else{
start = mid + 1 ;
}
}
//没有值则返回一个空的
return -1 ;
}
以上是关于01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)的主要内容,如果未能解决你的问题,请参考以下文章