• 二分查找法和插入排序


    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;
    }

     

     

     

  • 相关阅读:
    vue响应式原理之Observer、Dep、Watcher
    vscode 常用插件
    脚手架搭建vue项目
    搭建框架
    select 自匹配问题
    Winform 根据Point截图并保存到指定路径
    C# Screen 类(多屏幕开发)
    C# WindowsService安装与卸载
    WebService WSDL动态访问
    C# 操作ini文件
  • 原文地址:https://www.cnblogs.com/stydejava/p/13375325.html
Copyright © 2020-2023  润新知