题目:给定整数数组 a[] = {18,49,65,91,113,6,52},从键盘中输入一个整数,使用折半查找法,判断是否在数组之内

/思路:此数组为无序数组,首先按升序排序;然后判断输入的数是否和数组中间的值相等,如果不相等,当该数据小于数组中间元素的值,就在数组的前一半数据中继续折半找,否则就在数组的后一半数据中继续折半找。/

代码详见:
import java.util.Scanner;

public class BST{
static int searchFun(int a[],int n,int x){
int mid,low,high;
low=0;
high=n-1;
while(low<=high){
mid=(high+low)/2;
if(a[mid]==x)
return mid;
else if(a[mid]>x)
high=mid-1;
else
low=mid+1;
}
return -1;
}

public static void main(String[] args){int arrays[ ]={18,49,65,91,113,6,52};for(int i=0;i<arrays.length;i++){for(int j=i;j<arrays.length;j++) {if(arrays[i]>arrays[j]){int temp=0;temp=arrays[i];arrays[i]=arrays[j];arrays[j]=temp;} }System.out.println("上升排序的结果为:"+arrays[i]);}int x,n,N;N=arrays.length;System.out.println("请输入想要查找的数:");Scanner input=new Scanner(System.in);x=input.nextInt();n=searchFun(arrays,N,x);if(n<0){System.out.println("没有找到数据:"+x);}else{System.out.println("数据:"+"位于数组的第"+(n+1)+"个元素处。");}
}

}


实验结果详见上图;

Java之二分法查找相关推荐

  1. 【二级java】 二分法查找

    例题1 :对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______. 解析: 如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功 查找次数为1 如果线形表中不存在该数 ...

  2. java二分法查找_java 中二分法查找的应用实例

    java 中二分法查找的应用实例 二分查找的前提是:数组有序 注意:mid的动态变化,否则出错!!! 实例代码: public class BiSearch { public static void ...

  3. Java 二分法查找

    二分法查找的步骤 1 查找前元素先排序 2 确定中间区域的位置mid=(low+high)/2 3 比较 如果等于要查找的值则直接返回,如果大于查找的值,那么则去小的部分查找每次则会减1 如果要查找的 ...

  4. Java的知识点18——数组存储表格数据、冒泡排序的基础算法、冒泡排序的优化算法、二分法查找

    数组存储表格数据 package cn.dym08; import java.util.Arrays; public class Test09 {public static void main(Str ...

  5. java 二分法查找数组,Java二分法查找数组元素下标

    package pers.ly.javase.algorithm; import java.util.Arrays; /** * 二分法查找 * @author: Lu Yang * @date: 2 ...

  6. 二分法查找的JAVA程序

    二分法查找的JAVA程序 class HalfSearch {public static void main(String[] args) {int []arr={11,15,18,45,65,77, ...

  7. 二分法查找的java简单实现

    package com.example.demo;import java.util.Arrays;/*** 二分法查找*/ public class BinarySearch {public stat ...

  8. java 二分法查找排序,插入排序,折半查找算法

    import java.util.*; /* *二分法排序和插入 */ class Main21 { public static void main(String[] args) { int[] ar ...

  9. 带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明

                                         带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明 一:带有哨兵的顺序表查找 1.算法设计:          ...

最新文章

  1. php 图片 投稿 源码,php图片上传,审核,显示源码(转载)
  2. MA5680T跨板聚合
  3. Scheme N皇后
  4. python logistic回归_logistic回归介绍与源码分析
  5. 远离你身边消极爱抱怨的人!!
  6. free() 是如何释放不同内存区块大小的指针?
  7. 米莱狄机器人怎么那么多_米莱狄究竟应该怎么玩?
  8. python飞机大战类_python微信飞机大战
  9. WinForm 窗体美化
  10. vs2010开发activex(MFC)控件/ie插件(二)
  11. 如何获取iphone的UUID
  12. 二维离散沃尔什变换及matlab实现
  13. F28335 eCAP配置代码(自发自检)
  14. eclipse识别不出java项目_Eclipse项目无法识别Java项目; 类路径问题
  15. 计算机辅助检测医学,人工智能在医学影响分析方面,可以起到计算机辅助诊断的作用,进行病灶检测、病灶量化诊断...
  16. 数字化营销3大趋势:全域、全链路、全闭环
  17. 解决魅族17横屏全屏会有白边问题
  18. 复杂网络基础——《链接》
  19. mt7688 ap-client 模式下连接上级路由
  20. 西安10万条业主信息被贩卖

热门文章

  1. QLoo推出用于现有服务的GraphQL接口
  2. HTML基础第六讲---表格
  3. asp.net网站安全常见问题与防范
  4. oracle远程连接配置
  5. 机器学习知识点(二十一)特征选择之岭回归和LASSO
  6. 邮件里面的图怎么复制出来_如何从INS批量导出邮件开发新的客户,推广产品和找reviewer【小技巧】...
  7. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732EM电磁流量计变送器如何接线!
  8. python 求均值_数据分析:寻找Python最优计算性能
  9. Rest 微服务工程搭建03——工程重构
  10. v-pre的指令|| v-cloak 的指令