关于折半法查找的一些总结以及ArrayList类的总结
一.折半法查找的总结(这算法很好理解,但我花了好久琢磨他有啥用.....)
1.实际意义
折半法查找主要是为了能够很快在一个数组中找出我们所需要的那个元素,与往常我们通过一个一个比较的方法不同,折半法大大减少了比较的次数,加快了效率,并且感觉在生活中也是有实际意义的,数组中元素少的时候当然看不太出来,但是若是有一个很大的数组,这种算法就很省事了。
2.注意事项
1.必须是顺序排序的一个数组,若不是我们需通过自己所学排序算法排一下
3.算法图解(定义一个数组a[])

这里我用的箭头相当于指针,感觉指针在数组中用的真是多。
min相当于指向最小的0索引,max指向最大的索引
mid=(max+min)/2指向这个公式所计算出的索引
如果我们要查找的是的话
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类的总结的更多相关文章
- "二分法"-"折半法"-查找算法-之通俗易懂,图文+代码详解-java编程
转自http://blog.csdn.net/nzfxx/article/details/51615439 1.特点及概念介绍 下面给大家讲解一下"二分法查找"这个java基础查找 ...
- 旧书重温:0day2【3】 详细解读PEB法 查找kener32地址
题外话:上一篇文章中的 PEB法查找kerner32地址的方法 对TEB.PEB .PE结构 知识要求很高,确实在写汇编代码时候小编 感觉自己能力,信手啪啪一顿乱撸,结果一运行,非法访问了,没办法翻阅 ...
- php实现两分法查找
两分法查找的前提:顺序方式存储,而且必须是排好序 直接上代码: function search($array, $target, $low = 0, $high = 0){ $len = count( ...
- Java实现二分法(折半)查找数组中的元素
二分查找 算法思想:又叫折半查找,要求待查找的序列有序.每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分 ...
- 链地址法查找成功与不成功的平均查找长度ASL
晚上,好像是深夜了,突然写到这类题时遇到的疑惑,恰恰这个真题只让计算成功的ASL,但我想学一下不成功的计算,只能自己来解决了,翻了李春葆和严蔚敏的教材没有找到相关链地址法的计算,于是大致翻到两篇不错的 ...
- 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类
依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...
- 零基础学习java------day12------数组高级(选择排序,冒泡排序,二分查找),API(Arrays工具类,包装类,BigInteger等数据类型,Math包)
0.数组高级 (1)选择排序 它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的起始位置 ...
- Unity3D 查找Update函数体为空的类
如果是大项目,有很多Update空跑还是多少有些效率损耗,那我们就把他们都找出来. 先引用Mono.Cecil //代码 using UnityEngine; using UnityEditor; u ...
- 12.创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方 法初始化x和y。创建类主类A来测试它。
package java1; public class Point { int x; int y; Point(int x,int y) { this.x = x; this.y = y; } pub ...
随机推荐
- 【转载】 Sqlserver查看数据库死锁的SQL语句
在Sqlsever数据库中,有时候操作数据库过程中会进行锁表操作,在锁表操作的过程中,有时候会出现死锁的情况出现,这时候可以使用SQL语句来查询数据库死锁情况,主要通过系统数据库Master数据库来查 ...
- 【原创】MVC+ZTree实现权限树的功能
今天自己采用MVC+ZTree的技术实现权限树的功能,有需要的可以收藏一下. 1.需要引用的JS 文件 <link href="~/Content/ZTree/css/demo.css ...
- SQL Server导入导出不丢主键和视图的方法
SQL Server导入导出 SQL Server 导入导出 工具/原料 使用Microsoft SQL Server Management Studio 导入导出数据. 直接使用Microsoft ...
- C-Linux_定时器示例使用
#include <stdlib.h> #include <signal.h> ; static struct itimerval oldtv; struct itimerva ...
- Word转MD文件
直接把网页的内容复制,丢进下面的网站,转为html格式,复制html代码文本 WordHtml 把代码文本放在这里 Html转MD
- 06-HTML-表格标签
<html> <head> <title>表格标签学习</title> <meta charset="utf-8"/> ...
- 吴恩达机器学习笔记 —— 7 Logistic回归
http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...
- Linux 安装 tomcat
创建目录 cd /usr mkdir tomcat cd tomcat 上传 tomcat rz.ftp 或者 wget 都可以 解压 tar -xzvf apache-tomcat-8.0.53.t ...
- Wyn BI的机会在哪里:越靠近消费者的行业,比如零售、文娱和金融,信息化投入越大 ZT
近日,全球知名信息技术咨询公司IDC在网易云创大会上发布了<2018中国企业数字化发展报告>(下称报告).报告显示,近几年我国数字经济占GDP比重逐年增加,至2017年已经达到32.9%, ...
- Python 一键上传下载&一键提交文件到SVN入基线工具
一键上传下载&一键提交文件到SVN入基线工具 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用说明 1 注: 根据我司项目规则订制的一套工具,集成以下功能,源码 ...