学习练习 java 二分查找法

时间:2022-09-04 23:07:44
 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 二分查找法的更多相关文章

  1. java二分查找法

    //二分查找法.必须有前提:数组中的元素要有序. public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = ; ...

  2. java学习之—递归实现二分查找法

    /** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...

  3. 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+ ...

  4. 二分查找法 java

    前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...

  5. Java冒泡排序,二分查找法

    冒泡排序 int[] arr = {1,7,6,2,8,4}; int temp ; //只需 运行 5次 for (int i = 0; i < arr.length - 1; i++) { ...

  6. 二分查找法(java版)

    二分查找法也称为折半查找法,在有序的序列中使用二分法可以提高程序的执行效率. 典型的二分查找法代码 public int binarySearch1(int[] arr,int target){ in ...

  7. 【C&sol;C&plus;&plus;学院】0723-32位与64位&sol;调戏窗体程序&sol;数据分离算法&sol;内存检索&sol;二分查找法&sol;myVC

    [送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...

  8. Java-数据结构与算法-二分查找法

    1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...

  9. 选择、冒泡排序,二分查找法以及一些for循环的灵活运用

    import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] ar ...

随机推荐

  1. fir&period;im Weekly - 从零开始创建 Android 新项目

    今年的 Google I/O 大会上,人工智能和虚拟现实的产品发布让我们对未来多了几分惊喜.对于开发者部分,Google 发布了 Android N 系统,感受最深的是全新的 Android Stud ...

  2. SSD果然劲爆!

    前两周入手了一块浦科特128G盘,不说多了,有图为证 以前把机械盘放在主硬盘位的时候,鲁大师显示是SATA II接口,现在把SSD放在主硬盘位,显示居然是SATA III接口了,看上面测试,确实是II ...

  3. 单核CPU&comma;多线程与性能

      问题概述 单核CPU的计算机上, 多线程能够提高程序运行的性能吗? 这个问题看起来简单,实际很复杂,设计到多方面的因素. 首先我们要把概念搞清楚, 那就是什么是性能? 一般来说, 我们把运行一个任 ...

  4. C语言使用正则表达式

    http://blog.chinaunix.net/uid-479984-id-2114941.html C语言使用正则表达式 据说一个好的程序员是会使用DB和Regular Expression的程 ...

  5. webkit内核下的mouseup后mousemove自动触发问题及解决方法

    如题,就以chrome为代表举例说明遇到mousemove的问题. 为body分别绑定onmousedown.onmousemove.onmouseup,并为触发时打印至控制台.代码如下(同学不要忘记 ...

  6. 用Eclipse的snippets功能实现代码重用

    snippets功能实现代码重用 Snippets 代码片段是Eclipse的一个插件. 很多时候可以通过这个功能,重复使用常用的代码片段,加快开发效率. 创建一个代码段的步骤: 在Eclipse的e ...

  7. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  8. &lbrack;efficiency&rsqb; emacs入门

    一. 没记错的话,这可能是第三次读emacs tutorial了.前两次读的非常慢,也不记得有没有读完了.总之最后都忘光了. 这次读的很顺畅,利用工作的空闲时间加上今天晚上(周日).总算是读完了. 没 ...

  9. python:选房抽签小工具

    1.房间号和姓名写在house_name.xls的house标签页中[注意!名字均不要改动]2.运行house.py3.当前同目录下会生成result.xls,即为结果:程序运行过程中不要打开该文件, ...

  10. node的router路由。

    使用router可以实现一个小型的express. router继承了大部分的app = express()的方法. 使用router可以工程化管理项目.router使用以后app只能在最开始去存在. ...