java排序 二分法_JAVA二分法排序
二分法查找
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二分法排序相关推荐
- java史努比_Java八大排序
Arrays.sort() 采用了2种排序算法 -- 基本类型数据使用快速排序法,对象数组使用归并排序. java的Collections.sort算法调用的是归并排序,它是稳定排序 方法一:直接插入 ...
- java 二分查找_Java二分法查找
1 假设有一个数组[1, 3, 5, 6, 23, 300],要从中找到23 2 有多种方法完成这个任务 (1)我们可以从小到大按顺序一个一个的对比,直到找到目标数字,或者反过来 (2)从中间开始查找 ...
- java字符排序规则_java 重写排序规则,用于代码层级排序
1.dataList 是个List> 类型的数据,所以比较的时候是冲map中获取数据,并且数据不能为空. 2.dataList 类型是由自己定义的,new Comparator> 也是对应 ...
- java的一段排序代码_Java常见排序算法——快速排序
概念: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可分别对这两部分记录继续进行排序,直到整个序列有序. 原理: 在数据集之中,选择一个元素作为"基准 ...
- java 8 排序反转_Java 8 排序小结
1.概述 首先,让我们先定义一个简单的实体类: @Data public class Human { private String name; private int age; public Huma ...
- java 集合排序方法_java集合排序方法sort的使用
转自 http://blog.csdn.net/a1165117473/article/details/6965652 /* * To change this template, choose To ...
- java输入成绩并排序简单_java 成绩排序
题目内容: 输入 N组数据 名字+成绩 输出:按照成绩升序或降序排列,若成绩相同,按照录入的先后顺序 import java.util.Scanner; public class Score { pr ...
- java 排序库_Java数据库排序
privateJButtongetJButtonOK(){if(jButtonOK==null){jButtonOK=newJButton();jButtonOK.setBounds(newRecta ...
- java选择排序百度_java选择排序
//选择排序 public class SelectionSort { public static void main(String[] args) { int[] arr={1,3,2,45,65, ...
最新文章
- Java设计模式 创建模式-单态模式(Singleton)
- qstring转qchar_Qt 对QString操作
- excel 中编程:vba 入门
- SQL Server 2008 R2:error 26 开启远程连接详解
- 求矩阵不靠边元素之和_机器(深度)学习数学知识之范数
- java web 部署_一步一步将java web项目部署到云服务器
- 零极点图定性绘制系统的幅频特性
- 高等数学——二重积分的计算方法
- for update加锁
- rna聚类分析_新技术助力单细胞RNA测序数据聚类分析
- 卡内基梅隆大学计算机专业有哪些,卡内基梅隆大学计算机系统类大学排名最新资讯总结篇...
- hduoj 一只小蜜蜂
- Android + OpenCV 入门教程笔记(保姆级)
- HZAU毕设之装订边边距32 mm、非装订边边距25 mm的操作
- 【Excel使用技巧】Excel数据导入sql
- adb remount失败解决
- SVN忽略项目中的文件或者文件夹
- 了解WEB前端开发吗,风风雨雨30年,前端开发变迁史
- QT模型索引使用QModelIndex
- 写时复制技术(摘自C语言中文网)
热门文章
- java读取nas文件_Windows store 8 app - 从NAS驱动器播放文件
- win7 docker 安装与报错解决
- Carla 使用神经网络训练自动驾驶车辆---数据采集部分
- S7-PLCSIM Advanced V3.0下载仿真失败
- Ubuntu 安装中文支持
- 宇视钉钉智联门禁能否关闭测温?
- postgresql 字符串拼接函数concat_lower_or_upper
- 在windows系统上如何将iphone备份到移动硬盘
- Lyapunov判稳第一法
- 赤峰中考计算机考试软件,2018赤峰中考信息技术与实验操作实施细则公布