学习练习 java 二分查找法
package com.hanqi; import java.util.*; public class Test5 { public static void main(String[] args) {
// TODO 自动生成的方法存根
//数组的二分查找法
//前提:数组要排好序 //1.随机生成生成数组
Random r1 = new Random();
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
// 产生随机数
array[i] = r1.nextInt(100);
}
// 遍历输出数组
System.out.println("数组的原始顺序");
for (int t : array) {
System.out.print(t + " ");
} //2.冒泡排序
System.out.println("排序后的顺序");
//总的循环次数
for (int k = 0; k < array.length - 1; k++) {
//优化:每次冒泡时的循环次数,比上一次少1
for (int i = 0; i < array.length - 1-k; i++) {
if (array[i] > array[i + 1]) {
// 从小到大
int zhong = array[i];
array[i] = array[i + 1];
array[i + 1] = zhong; }
}
System.out.println("数组第" + (k + 1) + "次排序后的顺序");
for (int t : array) {
System.out.print(t + " ");
}
}
//3.二分查找 //1)计算出数组的中间位置:(开始位置索引+结束位置索引)/2 //2)取出中间未知的值和要查找的数字比较,根据比较结果决定下一步查找的部分
//3)计算出下一部分数组的中间位置 //要查找的值 int a=53;
//找到的值得位置 int w=-1;//-1代表没找到
//开始索引
int start=0;
//结束索引
int end=array.length-1;
//循环条件
while(start<=end)
{
int m=(start+end)/2;
if(a==array[m])
{
w=m;//找到了
break;
}
else if(a>array[m])
{
start=m+1;
}
else
{
end=m-1;
}
}
System.out.println("找到的位置是"+w);
} }
学习练习 java 二分查找法的更多相关文章
- java二分查找法
//二分查找法.必须有前提:数组中的元素要有序. public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = ; ...
- java学习之—递归实现二分查找法
/** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...
- java for循环和数组--冒泡排序、二分查找法
//100以内与7相关的数 for(int a=1;a<=100;a++){ if(a%7==0||a%10==7||a/10==7){ System.out.print(a+ ...
- 二分查找法 java
前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...
- Java冒泡排序,二分查找法
冒泡排序 int[] arr = {1,7,6,2,8,4}; int temp ; //只需 运行 5次 for (int i = 0; i < arr.length - 1; i++) { ...
- 二分查找法(java版)
二分查找法也称为折半查找法,在有序的序列中使用二分法可以提高程序的执行效率. 典型的二分查找法代码 public int binarySearch1(int[] arr,int target){ in ...
- 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC
[送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...
- Java-数据结构与算法-二分查找法
1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...
- 选择、冒泡排序,二分查找法以及一些for循环的灵活运用
import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] ar ...
随机推荐
- HTML ISO-8859-1 参考手册
HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 7 比特 ASCII. ISO-8859-1 ...
- HDU 2089 不要62(数位dp入门)
题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个. 题解:这是数位DP的入门题了,首先要理解数DP的原理,DP[i][j]:代表第i位的第j值,举个栗子:如4715 数位数是从右向 ...
- NeHe OpenGL教程 第二十三课:球面映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十九课:粒子系统
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 图片--android 图片占用内存与什么有关
原文链接:http://blog.csdn.net/zjl5211314/article/details/7041813 在开发手机应用的时候,内存是有限的,那使用的时候,就要合理的运用和释放. 那么 ...
- SharedPreferences实现自动登录记住用户名密码
最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现. SharedPreferences简介 SharedPreferences ...
- ylbtech-LanguageSamples-Threading(线程处理)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Threading(线程处理) 1.A,示例(Sample) 返回顶部 “线程处理”示例 ...
- Android之Handler
1.Handler默认情况下与主线程处于同一线程 public class MainActivity extends Activity { private Button startButton = n ...
- Android 开发中常用 ADB 命令总结
adb 的全称为 Android Debug Bridge,就是起到调试桥的作用.通过 adb 我们可以在 Eclipse 中方便通过 DDMS 来调试 Android 程序,说白了就是 debug ...
- tomcat 内存溢出
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入Perm ...