• 二分查找法和插入排序


    day6

    二分查找法

     

    原理:在一个是顺序的序列,每次查找都找中间位置的值与之比较,如果中间位置的值比待查数值大,在序列左边继续执行查找过程;如果中间位置的值比待查的值小,在序列右边继续执行查找过程

    public static int binarySearch(int[] arrray,int a){
       int low = 0;
       int high = array.length -1;//数组下标从0计数,下标比真实数量少1
       int mid;
       while(low <= high){
           mid = (low + high) / 2;
           if(a == array[mid]){
              return mid;
          }
          else if(a > array[mid]){//向右查找
              low = mid + 1; //+1是排除了array[mid]
          }
       else{    //向左查找
           high = mid - 1;
      }
       return -1; //说明数组中没有查找的数
       
    }

     

    插入排序

    将一个数据插入一个已经拍好序的序列中。

    数组从下标为0的元素开始排序。

    public static int[] insertionSort(int[] array){
       for(int i =1;i<array.length;i++){//从下标为1开始比较,首元素相当于在一个新的数组中,一个元素是有序的
           int index = i-1;
           int inserVal = array[i];
           while(index>=0 && inserVal <array[index] ){//待插入的数据比被插入的数小(我也不知道为什么要判断index是否大于0)
               arrary[index+1] = array[index];//将array[index]向后移一位
               index--
            }
           array[index+1] = inserVal;//待插入的数据大于被插入的数,array[index]位置不变,inserVal就需要向后移动;
      }
       return array;
    }

     

     

     

  • 相关阅读:
    SpringCloud学习教程
    Google浏览器插件推荐
    谷歌身份验证器使用
    js控制某个div在页面加载完成5秒后隐藏
    通过城市联动实时将地址显示到text中
    百度地图通过地址查询并且定位
    yii2.0验证码的两种实现方式
    yii2.0 中数据查询中 or、in、between 及session的使用
    Calling unknown method: appmodulesmobilecontrollersCompanyController::redirect()
    页面权限跳转
  • 原文地址:https://www.cnblogs.com/stydejava/p/13375325.html
Copyright © 2020-2023  润新知