用java实现二分搜索算法分析
实验目的:
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实现二分搜索算法分析相关推荐
- java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...
- java冒泡排序_Java算法分析之冒泡排序(Bubble Sort)
冒泡排序名字由来? 越大的元素经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序". 冒泡排序 ...
- java洗扑克牌算法分析_IT兄弟连 Java语法教程 综合案例
大家好!下面为您带来精彩资讯! 1.案例需求 编写程序,模拟斗地主游戏洗牌和发牌的流程. 2.应用知识 ● 数组的声明 ● 数组的遍历 ● for循环 ● if-else分支结构 3.需求解析 模拟斗 ...
- Java数据结构与算法分析——求两个字符的最大子串
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 题目分析 在编程之前,我们先来分析题目. 要求 找出两个字符串中的最大子串,即最大的交集.例如 ...
- 算法(Java)——动态规划
算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...
- 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt
分治法第k小元素poj2104 第六章 分 治 6.1 引言 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 战略 算法设计技术 划分--治理- ...
- Android近期阅读书籍
近期阅读了不少Android书籍,整理出来供大家学习: Android群英传 App研发录 Android源码设计模式解析与实战 Android编程实战 Android应用开发必知的50个诀窍 And ...
- 动态规划之背包问题——01背包
算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...
- 单源路径分支界限java_java单源最短路径算法
. .. .. . 单源最短路径的 Dijkstra 算法: 问题描述: 给定一... 并 应用贪心法求解单源最短路径问题.环境要求对于环境没有特别要求.对于算法实现,可以自由选择 C, C++, J ...
最新文章
- MQTT 心跳和keepalive配置
- OpenGL 有时候纹理映射的部分问题
- springboot中如何获取yml配置文件中的配置信息
- excel如何做单元格下拉和根据文字自动变色
- Lync Server 2010的部署系列_第三章 证书、架构、DNS规划
- [Qt教程] 第30篇 XML(四)使用流读写XML
- 二级计算机excel以宏保存,Excel宏保存
- 【转】Postman 生成接口文档
- 什么是客户旅程_为什么记录您的旅程将导致开发人员成功
- jquery数组怎么传给后台_我是如何让公司后台管理系统焕然一新的(下)封装组件...
- C语言strcat()库函数的实现
- 解读最具O2O属性—哈根达斯微信企业号的成功之道
- Bailian2941 Bailian3225 满足条件的整数【枚举+开方】
- 极客大挑战基础部分解题过程
- 如何编译python源代码
- win10 校验sha256
- 如何通过图片定位位置
- Agents and Multi-agent System考试重要知识点整理
- 数据恢复必备宝典—BMP文件详解
- 2D 游戏工具系列:unity自带Tilemap和地图编辑器Tiled的基本使用以及Super Tiled2Unity如何导入tmx到Unity中(2)
热门文章
- 十进制数转换为二进制数
- 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
- C语言实现通用链表初步(一)
- 代理模式(为对象提供相同的接口)
- STM32开发 -- 4G模块开发详解(2)
- [以太坊源代码分析] II. 数据的呈现和组织,缓存和更新
- Android 插件化原理解析——Activity生命周期管理
- c++入门代码_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解
- JZOJ 5386. 【NOIP2017提高A组模拟9.23】碎
- JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题