二分法查找

1.二分法查找是建立在已经排序的基础之上的。

2.以下程序分析从小到大排序。

3.这个数组中没有重复的元素.

1 3 5 9 11 13 56

以上是一个已经排好序的int类型的数组,要求快速找出13这个元素的下标。

1 3 5 9 11 13 56

int begin = 0;

int end = 6;

int mid = 3;

中间元素是9, 9<13

begin = mid + 1; 4

end = 6;

mid = 5;

中间元素是13. 13==13

public class MyArrays{

public static void main(String[] args){

int[] a = {1,3,4,5,7,8,9,10,23,25,29};

int destElement = 1;

//要求从a数组中查找10这个元素的下标

int index = binarySearch(a,destElement); //如果找到则返回元素的下标,如果找不到统一返回 -1

System.out.println((index==-1)? destElement + "元素不存在!":destElement + "在数组中的下标是:" + index);

}

//折半查找的核心算法

public static int binarySearch(int[] a,int destElement){

int begin = 0;

int end = a.length-1;

while(begin <= end){

int mid = (begin + end)/2;

if(a[mid]==destElement){

return mid;

}else if(a[mid]>destElement){

end = mid - 1;

}else if(a[mid] < destElement){

begin = mid + 1;

}

}

return -1;

}

}

阳哥二分法

int max,min,mid;

min = 0;

max = p.length;

mid = (min+max)/2;

while(p[mid]!=key){

if(key>p[mid]){

min =mid+1;

}else if(key

max = mid-1;

}

if(max

return -1;

mid =(max+min)/2;

}

return mid;

java排序 二分法_JAVA二分法排序相关推荐

  1. java史努比_Java八大排序

    Arrays.sort() 采用了2种排序算法 -- 基本类型数据使用快速排序法,对象数组使用归并排序. java的Collections.sort算法调用的是归并排序,它是稳定排序 方法一:直接插入 ...

  2. java 二分查找_Java二分法查找

    1 假设有一个数组[1, 3, 5, 6, 23, 300],要从中找到23 2 有多种方法完成这个任务 (1)我们可以从小到大按顺序一个一个的对比,直到找到目标数字,或者反过来 (2)从中间开始查找 ...

  3. java字符排序规则_java 重写排序规则,用于代码层级排序

    1.dataList 是个List> 类型的数据,所以比较的时候是冲map中获取数据,并且数据不能为空. 2.dataList 类型是由自己定义的,new Comparator> 也是对应 ...

  4. java的一段排序代码_Java常见排序算法——快速排序

    概念: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可分别对这两部分记录继续进行排序,直到整个序列有序. 原理: 在数据集之中,选择一个元素作为"基准 ...

  5. java 8 排序反转_Java 8 排序小结

    1.概述 首先,让我们先定义一个简单的实体类: @Data public class Human { private String name; private int age; public Huma ...

  6. java 集合排序方法_java集合排序方法sort的使用

    转自  http://blog.csdn.net/a1165117473/article/details/6965652 /* * To change this template, choose To ...

  7. java输入成绩并排序简单_java 成绩排序

    题目内容: 输入 N组数据 名字+成绩 输出:按照成绩升序或降序排列,若成绩相同,按照录入的先后顺序 import java.util.Scanner; public class Score { pr ...

  8. java 排序库_Java数据库排序

    privateJButtongetJButtonOK(){if(jButtonOK==null){jButtonOK=newJButton();jButtonOK.setBounds(newRecta ...

  9. java选择排序百度_java选择排序

    //选择排序 public class SelectionSort { public static void main(String[] args) { int[] arr={1,3,2,45,65, ...

最新文章

  1. Java设计模式 创建模式-单态模式(Singleton)
  2. qstring转qchar_Qt 对QString操作
  3. excel 中编程:vba 入门
  4. SQL Server 2008 R2:error 26 开启远程连接详解
  5. 求矩阵不靠边元素之和_机器(深度)学习数学知识之范数
  6. java web 部署_一步一步将java web项目部署到云服务器
  7. 零极点图定性绘制系统的幅频特性
  8. 高等数学——二重积分的计算方法
  9. for update加锁
  10. rna聚类分析_新技术助力单细胞RNA测序数据聚类分析
  11. 卡内基梅隆大学计算机专业有哪些,卡内基梅隆大学计算机系统类大学排名最新资讯总结篇...
  12. hduoj 一只小蜜蜂
  13. Android + OpenCV 入门教程笔记(保姆级)
  14. HZAU毕设之装订边边距32 mm、非装订边边距25 mm的操作
  15. 【Excel使用技巧】Excel数据导入sql
  16. adb remount失败解决
  17. SVN忽略项目中的文件或者文件夹
  18. 了解WEB前端开发吗,风风雨雨30年,前端开发变迁史
  19. QT模型索引使用QModelIndex
  20. 写时复制技术(摘自C语言中文网)

热门文章

  1. java读取nas文件_Windows store 8 app - 从NAS驱动器播放文件
  2. win7 docker 安装与报错解决
  3. Carla 使用神经网络训练自动驾驶车辆---数据采集部分
  4. S7-PLCSIM Advanced V3.0下载仿真失败
  5. Ubuntu 安装中文支持
  6. 宇视钉钉智联门禁能否关闭测温?
  7. postgresql 字符串拼接函数concat_lower_or_upper
  8. 在windows系统上如何将iphone备份到移动硬盘
  9. Lyapunov判稳第一法
  10. 赤峰中考计算机考试软件,2018赤峰中考信息技术与实验操作实施细则公布