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的经典排序--选择排序--冒泡排序--折半查找(二分查找)的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序与选择排序(经典版)----java基础总结

基于python语言的经典排序法(冒泡法和选择排序法)

经典排序:冒泡排序+选择排序 小结

java基本算法选择排序和冒泡排序

十大经典排序之冒泡,选择,插入排序

用 Python 实现十大经典排序算法