实验目的:
1、复习java编程;
2、掌握二分搜索技术的基本原理;
3、掌握使用java程序进行二分搜索的方法。
实验步骤:
1、由用户输入5个以上的整数;
2、利用二分搜索算法完成对数组的搜索。

package erfenfa;
import java.util.Scanner;
public class erfen
{ static int key;public static void main(String[] args){ //数组的输入System.out.println("请输入数组中的8个元素:");int[] a=new int [8];Scanner scan=new Scanner(System.in);for(int i=0;i<8;i++){   a[i]=scan.nextInt();}//要查找的元素输入System.out.println("请输入要查找的元素:");Scanner shu = new Scanner(System.in);key= shu.nextInt();/*数组的输出提示*/System.out.print("你输入的数组是:\n");for(int b=0;b<8;b++){System.out.print("["+a[b]+"]");}/*查找元素输出提示*/System.out.print("\n你要查找的元素是:\n");System.out.print(key);/*最终结果的输出*/System.out.println("\n目标数的数组下标是:"+binSearch(a, 0, a.length - 1));  } /*二分查找算法开始*/public static int binSearch(int a[], int left, int right) {   int mid = (right - left) / 2 + left;   if (a[mid] == key) {   return mid;   }   if (left >= right) {   return -1;  //在数组中没找到特定元素 } else if (key > a[mid]) {   return binSearch(a, mid + 1, right);   //如果查找的数在数组右半段} else if (key < a[mid]) {   return binSearch(a, left, mid - 1);   //如果查找的数在数组左半段}   return -1; //在数组中没找到特定元素}/*查找算法结束*/
}

结果如下:

转载于:https://www.cnblogs.com/soulsjie/p/6829463.html

用java实现二分搜索算法分析相关推荐

  1. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...

  2. java冒泡排序_Java算法分析之冒泡排序(Bubble Sort)

    冒泡排序名字由来? 越大的元素经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序". 冒泡排序 ...

  3. java洗扑克牌算法分析_IT兄弟连 Java语法教程 综合案例

    大家好!下面为您带来精彩资讯! 1.案例需求 编写程序,模拟斗地主游戏洗牌和发牌的流程. 2.应用知识 ● 数组的声明 ● 数组的遍历 ● for循环 ● if-else分支结构 3.需求解析 模拟斗 ...

  4. Java数据结构与算法分析——求两个字符的最大子串

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 题目分析 在编程之前,我们先来分析题目. 要求 找出两个字符串中的最大子串,即最大的交集.例如 ...

  5. 算法(Java)——动态规划

    算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...

  6. 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt

    分治法第k小元素poj2104 第六章 分 治 6.1 引言 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 战略 算法设计技术 划分--治理- ...

  7. Android近期阅读书籍

    近期阅读了不少Android书籍,整理出来供大家学习: Android群英传 App研发录 Android源码设计模式解析与实战 Android编程实战 Android应用开发必知的50个诀窍 And ...

  8. 动态规划之背包问题——01背包

    算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...

  9. 单源路径分支界限java_java单源最短路径算法

    . .. .. . 单源最短路径的 Dijkstra 算法: 问题描述: 给定一... 并 应用贪心法求解单源最短路径问题.环境要求对于环境没有特别要求.对于算法实现,可以自由选择 C, C++, J ...

最新文章

  1. MQTT 心跳和keepalive配置
  2. OpenGL 有时候纹理映射的部分问题
  3. springboot中如何获取yml配置文件中的配置信息
  4. excel如何做单元格下拉和根据文字自动变色
  5. Lync Server 2010的部署系列_第三章 证书、架构、DNS规划
  6. [Qt教程] 第30篇 XML(四)使用流读写XML
  7. 二级计算机excel以宏保存,Excel宏保存
  8. 【转】Postman 生成接口文档
  9. 什么是客户旅程_为什么记录您的旅程将导致开发人员成功
  10. jquery数组怎么传给后台_我是如何让公司后台管理系统焕然一新的(下)封装组件...
  11. C语言strcat()库函数的实现
  12. 解读最具O2O属性—哈根达斯微信企业号的成功之道
  13. Bailian2941 Bailian3225 满足条件的整数【枚举+开方】
  14. 极客大挑战基础部分解题过程
  15. 如何编译python源代码
  16. win10 校验sha256
  17. 如何通过图片定位位置
  18. Agents and Multi-agent System考试重要知识点整理
  19. 数据恢复必备宝典—BMP文件详解
  20. 2D 游戏工具系列:unity自带Tilemap和地图编辑器Tiled的基本使用以及Super Tiled2Unity如何导入tmx到Unity中(2)

热门文章

  1. 十进制数转换为二进制数
  2. 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
  3. C语言实现通用链表初步(一)
  4. 代理模式(为对象提供相同的接口)
  5. STM32开发 -- 4G模块开发详解(2)
  6. [以太坊源代码分析] II. 数据的呈现和组织,缓存和更新
  7. Android 插件化原理解析——Activity生命周期管理
  8. c++入门代码_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解
  9. JZOJ 5386. 【NOIP2017提高A组模拟9.23】碎
  10. JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题