Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查
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.至少使用两种方法进行编程,直接查相关推荐
- 查找数组中的指定元素的位置--顺序查找与二分查找
Java代码-查找数组中的指定元素的位置 /*** 查找数组中指定元素(顺序查找)*/ class Demo6 {public static void main(String[] args) {int ...
- c语言调用graphviz_c语言分析函数调用关系图(call graph)的几种方法
一.基于 Doxygen或 lxr 的API形式的文档系统. 二.基于CodeViz, CodeViz是<Understanding The Linux Virtual Memory Manag ...
- 宇宙中至少有两种方式能灭绝人类,第一种仅需两秒
来源:科学的乐园 在科幻小说<三体Ⅲ:死神永生>之中,歌者文明"母世界"的宇宙飞船曾经利用宇宙规律武器二向箔来摧毁地球文明,将地球所处的三维世界完全变成了一个二维世界. ...
- python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...
- C# 检查当前系统已安装的程序app/两种方法检测
一.目的.构思 1.检测当前系统有没有安装某个程序,如果没有就重新安装. 2.在网上找到了两种方法,可惜都找不到需要检测的app. 二.code实现 1.查找注册列表方式.要在winform的proj ...
- 10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)
一:题目 本题目要求编写SQL语句, 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列. 提示: 本题有三种情况: (1) 至少生产两种不同 ...
- python分析数据差异的方法_用Python的两种方法进行方差分析
在进行数据分析时,我们往往会遇到要对某个变量的影响因素进行分析的情况,而影响一事物的因素往往是很多的.比如在化工生产中,有温度.压力.剂量.反应时间等因素.每一因素的改变都有可能影响产品的数量和质量. ...
- c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...
点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...
- win10计算机桌面快捷方式,Win10程序快捷方式添加到桌面上的两种方法
在使用电脑的时候一般都是把程序快捷方式添加到电脑桌面上,因为打开电脑面对的就是桌面.在桌面打开程序也是最快的.那么在Win10系统中如何把应用程序 快捷方式 添加到桌面上呢?方法有两种,这里就为大家一 ...
最新文章
- c++ stack 的使用
- 对python的认识800字_我对python里True和False的理解
- java生产者与消费者问题_java生产者与消费者问题
- java金额类型_Java中存储金额用什么数据类型?
- 洛谷P5733、P5734、P5735、P5739题题解(Java语言描述)
- 蛋白粉有什么作用?搭配这些食物帮助提升免疫力!
- pyltp python具体使用
- Python画樱花树~
- Kylin Linux V10升级gcc操作
- java老王博客_老王的JAVA基础课:第5课 面向对象
- linux下的qt没有qpixma类吗,Qt基础教程之QTreeWidget和QDockWidget用法详解
- C++基础学习笔记(五)——核心编程PART3
- 4763: 雪辉[点分治+可持久化分块]
- mybatis(二)xml配置文件详细说明
- Acwing第 70 场周赛【未完结】
- pos打印机指令java,如何从Delphi向POS打印机发送控制命令
- STAC: A Simple Semi-Supervised Learning Framework for Object Detection
- 流媒体的几种播放方式
- 作为程序员,首先要自清自己是什么人
- stable-baselines3学习之Tensorboard