• Java冒泡排序,二分查找法


    冒泡排序

            int[] arr = {1,7,6,2,8,4};
            int temp ;
            //只需 运行 5次
            for (int i = 0; i < arr.length - 1; i++) {
                //依次比较并排序
                for (int j = 0; j < arr.length - i -1; j++) {
                    //如果 第一个数 比 第二数大 则进行判断,否则不进行
                    if( arr[j] > arr[ j+ 1] ){
                        //将 大的值 赋给 temp
                        temp = arr[j];
                        //将 第二个数的值 赋给第一个数
                        arr[j] = arr[j +1];
                        // 将大的值 赋给 第二个数
                        arr[j + 1] =temp;
                    }
                }
            }
            //打印
            for (int i : arr) {
                System.out.println(i);
            }

     二分查找法

     public int findValue(int[] arr ,int key){
            //开始值
            int start = 0;
            //结束值
            int end = arr.length -1;
    
            while (start <= end){
                //中值索引
                int middle = (start + end) / 2;
                //如果 目标值 小于 中值
                if(key < arr[middle] ){
                    //结束值 = 中值索引 - 1
                    end = middle - 1;
    
                }else if( key > arr[middle] ){//如果目标 大于 中值
                    //开始值 = 中值索引 + 1
                    start = middle + 1;
                }else{
                    //否则直接返回 中值索引
                    return middle;
                }
            }
            return -1;
    
        }
  • 相关阅读:
    重载
    两数之和
    求二叉树层序遍历
    最小的K的个数
    二分查找
    实现二叉树先序,中序,后序
    判断 链表中是否有环
    设计LRU缓存结构
    排序
    反转链条
  • 原文地址:https://www.cnblogs.com/oukele/p/10604401.html
Copyright © 2020-2023  润新知