1.使用二分搜索算法查找任意N个有序数列中的指定元素。
2.通过上机实验进行算法实现。
3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。
4.至少使用两种方法进行编程,直接查找/递归查找/迭代查找。

package algorithm;
import javax.swing.*;
import java.util.*;
public class Test1 {//直接查找static int binary_search(int n,int a[]){int m=-1;for(int i=0 ; i<a.length ; i++){if(a[i]==n){m=i;break;}}if(m==-1)return -1;elsereturn m;}//递归查找static int binary_search1(int n,int a[],int low,int high){if(n<a[low] || n>a[high] || high<=low)return -1;int mid=(low+high)/2;if(n>a[mid])return binary_search1(n,a,mid+1,high);else if(n<a[mid])return binary_search1(n,a,low,mid+1);elsereturn mid;}//迭代查找static int binary_search2(int n,int a[]){int low,high,mid,m;m=-1;low=0;high=a.length-1;while(low<=high) {mid=(low+high)/2;if(n<a[mid])high=mid-1;else if(n>a[mid])low=mid+1;else if(n==a[mid]){m=mid;break;}}if(m==-1)return -1;elsereturn m;}public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入个数:");int n=in.nextInt();int[] a=new int[n];System.out.println("请输入"+n+"个数据:");for(int i=0;i<n;i++){a[i]=in.nextInt();}Arrays.sort(a);System.out.println("请输入要查到的数据:");int m=in.nextInt();int l;System.out.println("直接查找:");l=binary_search(m,a)+1;if(l==0)System.out.println("不存在!1");elseSystem.out.println("位置在第"+l+"个");System.out.println("递归查找:");int low=0;int high=n-1;l=binary_search1(m,a,low,high)+1;if(l==0)System.out.println("不存在!");elseSystem.out.println("位置在第"+l+"个");System.out.println("迭代查找:");l=binary_search2(m,a)+1;if(l==0)System.out.println("不存在!");elseSystem.out.println("位置在第"+l+"个");}
}

Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查相关推荐

  1. 查找数组中的指定元素的位置--顺序查找与二分查找

    Java代码-查找数组中的指定元素的位置 /*** 查找数组中指定元素(顺序查找)*/ class Demo6 {public static void main(String[] args) {int ...

  2. c语言调用graphviz_c语言分析函数调用关系图(call graph)的几种方法

    一.基于 Doxygen或 lxr 的API形式的文档系统. 二.基于CodeViz, CodeViz是<Understanding The Linux Virtual Memory Manag ...

  3. 宇宙中至少有两种方式能灭绝人类,第一种仅需两秒

    来源:科学的乐园 在科幻小说<三体Ⅲ:死神永生>之中,歌者文明"母世界"的宇宙飞船曾经利用宇宙规律武器二向箔来摧毁地球文明,将地球所处的三维世界完全变成了一个二维世界. ...

  4. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  5. C# 检查当前系统已安装的程序app/两种方法检测

    一.目的.构思 1.检测当前系统有没有安装某个程序,如果没有就重新安装. 2.在网上找到了两种方法,可惜都找不到需要检测的app. 二.code实现 1.查找注册列表方式.要在winform的proj ...

  6. 10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)

    一:题目 本题目要求编写SQL语句, 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列. 提示: 本题有三种情况: (1) 至少生产两种不同 ...

  7. python分析数据差异的方法_用Python的两种方法进行方差分析

    在进行数据分析时,我们往往会遇到要对某个变量的影响因素进行分析的情况,而影响一事物的因素往往是很多的.比如在化工生产中,有温度.压力.剂量.反应时间等因素.每一因素的改变都有可能影响产品的数量和质量. ...

  8. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  9. win10计算机桌面快捷方式,Win10程序快捷方式添加到桌面上的两种方法

    在使用电脑的时候一般都是把程序快捷方式添加到电脑桌面上,因为打开电脑面对的就是桌面.在桌面打开程序也是最快的.那么在Win10系统中如何把应用程序 快捷方式 添加到桌面上呢?方法有两种,这里就为大家一 ...

最新文章

  1. c++ stack 的使用
  2. 对python的认识800字_我对python里True和False的理解
  3. java生产者与消费者问题_java生产者与消费者问题
  4. java金额类型_Java中存储金额用什么数据类型?
  5. 洛谷P5733、P5734、P5735、P5739题题解(Java语言描述)
  6. 蛋白粉有什么作用?搭配这些食物帮助提升免疫力!
  7. pyltp python具体使用
  8. Python画樱花树~
  9. Kylin Linux V10升级gcc操作
  10. java老王博客_老王的JAVA基础课:第5课 面向对象
  11. linux下的qt没有qpixma类吗,Qt基础教程之QTreeWidget和QDockWidget用法详解
  12. C++基础学习笔记(五)——核心编程PART3
  13. 4763: 雪辉[点分治+可持久化分块]
  14. mybatis(二)xml配置文件详细说明
  15. Acwing第 70 场周赛【未完结】
  16. pos打印机指令java,如何从Delphi向POS打印机发送控制命令
  17. STAC: A Simple Semi-Supervised Learning Framework for Object Detection
  18. 流媒体的几种播放方式
  19. 作为程序员,首先要自清自己是什么人
  20. stable-baselines3学习之Tensorboard

热门文章

  1. hdu-4686 Arc of Dream
  2. MySQL添加服务、设置密码、修改密码
  3. NYOJ 195 飞翔
  4. Java笔记(七)HashMap和HashSet
  5. 【原创】 关于全局静态变量初始化
  6. Android组件之Service
  7. Android启动Activity的两种方式与四种启动模式
  8. 跟着鸟哥学Linux系列笔记1
  9. linux 动态链接库的创建和使用--动态连接
  10. Keras:基于Theano和TensorFlow的深度学习库