码迷,mamicode.com
首页 > 其他好文 > 详细

关于折半法查找的一些总结以及ArrayList类的总结

时间:2018-12-02 22:41:47      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:图片   用法   元素   生活   查找   集合   技术   排序算法   次数   

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

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()清空集合

关于折半法查找的一些总结以及ArrayList类的总结

标签:图片   用法   元素   生活   查找   集合   技术   排序算法   次数   

原文地址:https://www.cnblogs.com/roseneverdie/p/10055420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!