zoukankan      html  css  js  c++  java
  • 关于折半法查找的一些总结以及ArrayList类的总结

    一.折半法查找的总结(这算法很好理解,但我花了好久琢磨他有啥用.....)

    1.实际意义

         折半法查找主要是为了能够很快在一个数组中找出我们所需要的那个元素,与往常我们通过一个一个比较的方法不同,折半法大大减少了比较的次数,加快了效率,并且感觉在生活中也是有实际意义的,数组中元素少的时候当然看不太出来,但是若是有一个很大的数组,这种算法就很省事了。

    2.注意事项

       1.必须是顺序排序的一个数组,若不是我们需通过自己所学排序算法排一下

    3.算法图解(定义一个数组a[])

         这里我用的箭头相当于指针,感觉指针在数组中用的真是多。

         min相当于指向最小的0索引,max指向最大的索引

         mid=(max+min)/2指向这个公式所计算出的索引

         如果我们要查找的是15的话

        1.算出mid     2.将a[mid]和所要查找的元素比(当总索引数为奇数时,不保留小数)

         3.如果a[mid]大于15

            就只剩下这些了,因为是顺序排序所以后面那些就被淘汰了,再次找mid最后若是找到了返回值即可(虽然我们一直在改变max,min所指向的元素但是数组中的索引数,以及元素的位置是不会变的。)小于那种情况其实也一样。

        4.代码

    package asdf;
    
    public class Research_By_Half {
                   
        public  static int research(int arr[],int num)
        {
            int max=arr.length-1;
            int min=0;
            int mid=0;
            while(arr[min]<=arr[max])
            {
                mid=(max+min)/2;
                if(arr[mid]<num) 
                {
                    min=mid+1;
                }
                else if(arr[mid]>num)
                {
                    max=mid-1;
                }else 
                {
                    return  mid;
                }
            }
            return -1;
        }
        public static void main(String[] args) {
            int a[]= {1,2,5,8,45,99};
            int b=research(a,45);
            System.out.println(b);
        }
    
    }

    二.ArrayList类的使用

    1.创建ArrayList类型变量时格式是(ArrayList<>  (变量名)=new ArrayList<>())

    2.用法

        1.add()给集合添加元素

              1.add(元素)就是添加     2.add(int 索引,元素)替换原位置元素并添加

        2.size()查看集合长度

        3.get()取出集合中某个元素.

        4.set(int 索引,元素)  用于修改

        5.clear()清空集合

  • 相关阅读:
    opencv学习笔记7 重映射和仿射变换
    opencv学习笔记8 高斯金字塔,拉普拉斯金字塔,调整大小
    opencv学习笔记6 角点检测
    opencv学习笔记5 霍夫变换 漫水填充
    opencv学习笔记4 边缘检测
    opencv学习笔记3 滤波 形态学
    opencv学习笔记2 拖动条,亮度对比度 颜色空间缩减 鼠标事件
    opencv学习笔记1 加载图像 图像融合 分通道与合并
    URL编码表
    BUUCTF-[GWCTF 2019]我有一个数据库 1
  • 原文地址:https://www.cnblogs.com/roseneverdie/p/10055420.html
Copyright © 2011-2022 走看看