冒泡排序 + 二分法

package com.atguigu.java;

public class Bubblesort {
    public static void main(String[] args){
        int arr[] = new int[]{-12,-52,52,24,65,94};
        
        for(int i = 0;i < arr.length - 1;i++){        //冒泡排序:先找出最大值放最后,再找第二的放倒数第二.......
            for(int j = 0;j < arr.length - 1 - i;j++){
                if(arr[j+1] < arr[j]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }    
        }
        
        for(int i = 0;i < arr.length;i++){
            System.out.println(arr[i] + " ");
        }
        
        boolean isFlag = true;
        int dest = 94;
        int head = 0;
        int end = arr.length - 1;
        
        while(end >= head){
            int middle = (end + head)/2;
            if(dest == arr[middle]){
                System.out.println("找到了,位置为:" + middle);
                isFlag = false;
                break;
            }else if(dest < arr[middle]){
                end = middle - 1;
            }else{
                head = middle + 1;
            }            
        }
        if(isFlag == true){
            System.out.println("找不到");
        }
    }
}

 

posted @ 2021-01-31 13:05  pilipalala  阅读(74)  评论(0)    收藏  举报