用集合实现二分(折半)查找
1 package com.cn.two; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 import java.util.Scanner; 7 8 public class Two { 9 10 //二分法 11 public static int find(List<Integer>list,int num){ 12 int start = 0; 13 int end = list.size()-1; 14 while (start <= end){ 15 int middle = (start + end)/2; 16 if (list.get(middle) == num){ 17 return middle; 18 }else if(list.get(middle) < num){ 19 start = middle + 1; 20 }else{ 21 end = middle - 1; 22 } 23 } 24 return -1; 25 } 26 27 public static void main(String[] args){ 28 List<Integer> list =new ArrayList<Integer>(); 29 Scanner input = new Scanner(System.in); 30 System.out.println("请输入需要查找的一组数字"); 31 String str = input.nextLine(); 32 String[] c = str.split(" "); 33 for(int i = 0 ;i < c.length;i++){ 34 list.add(Integer.valueOf(c[i]));//把字符串数组的内容转成Integer并放入集合 35 } 36 Collections.sort(list); 37 System.out.println(list); 38 System.out.println("请输入需要查找的目标数字"); 39 int num = input.nextInt(); 40 int b = find(list,num); 41 if (b == -1){ 42 System.out.println("没有" + num + "这个数"); 43 }else { 44 System.out.println("找到" + num + "这个数,在" + b + "位置"); 45 } 46 } 47 }
return -1;
}
转载于:https://www.cnblogs.com/ailsalin/p/6365772.html
用集合实现二分(折半)查找相关推荐
- 1.2_linearbinary_search_顺序(线性)查找二分(折半)查找
--- 顺序查找 ---线性查找.从列表第一个元素开始,顺序进行搜索直到找到元素或搜索到列表最后一个元素为止--- 二分查找 ---折半查找.从有序列表的初始候选区 li[0:n] 开始通过对 待查找 ...
- 数组查找———二分(折半)查找法
思路(PPT) 将要查找的元素和数组中间的元素比较,如果没找到则继续折半 代码 int nums[] = {2, 5, 9, 1, 3};System.out.println(Arrays.toStr ...
- java数组二分查找的简单例题_Java基础-练习 数组元素二分查找(折半查找)
图解: 二分折半查找使用前提是数组是有序. 题目分析: 通过观察发现,本题目要实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 我们使用数组最中间位置的元素值与要查找的指定数 ...
- 折半查找的思想及源码_二分查找及对应的几道经典题目
二分查找(Binary Search)属于七大查找算法之一,又称折半查找,它的名字很好的体现出了它的基本思想,二分查找主要是针对的是有序存储的数据集合. 假设有一个集合和一个待查找的目标值,每次都通过 ...
- C语言之二分查找法或折半查找法剖析(经典例题,经典解析)
二分查找法(也叫折半查找法): 什么是二分查找? 具体查找的方式? 两种方法剖析 易错点列举 先举例题: int arr[]={1,2,3,4,5,6,7,8,9,10}; 找出7所在的位置. 分析之 ...
- 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)
目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...
- 数据结构之二分查找(折半查找)
数据结构之二分查找(折半查找) 二分查找又称折半查找,优点是次数比较少,查找速度快,平均性能好,其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先 ...
- python实现二分查找(折半查找)算法
python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...
- 数据结构-顺序查找的二分查找法(折半查找)
折半查找要求顺序表中的元素必须是排好序的,即数组中的元素是由小到大排好序的 思想: 1.以数组的边界确定low和high的值,low就是最低的0,high就是最高的n-1(n是元素的个数),这里的lo ...
- 让你秒懂的折半查找(二分查找)
折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...
最新文章
- 【综述专栏】关于AI Architecture未来的一些思考
- FastDFS+Nginx实现文件服务器(转载)
- lnmp 中的laravel出现白屏的处理办法
- [iBoard 电子学堂][第〇卷 电子基础]第二篇 电路图与印刷电路板
- android 水平方向瀑布流,Android RecyclerView(瀑布流)水平/垂直方向分割线
- EntityFramework Code-First—领域类配置之DataAnnotations
- 揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效
- ldo和dcdc功耗_深度解析DCDC和LDO各自的原理和区别
- Star Schema完全参考手册读书笔记五
- SPIRE.DOC - .NET开发者的福利
- 调用Thread类的方法:public final String getName() 为什么得到的线程对象的名称默认是:Thread-0、Thread-1、Thread-2、...呢?...
- java学习笔记宋红康版本-01
- Windows CMD命令大全
- Print2Flash 3汉化破解版下载
- CNZZ埋点及点击量统计方法
- 一 简单句和并列句(2021-10-29)
- sublime build 系统必读
- 麻省理工计算机都学啥,麻省理工学院计算机科学专业排名第1(2020年USNEWS美国排名)...
- Python之解决”千年虫“问题篇
- 微型生物传感器,如何照亮地球最贫瘠的角落?
热门文章
- hdu 1142 记忆化搜索
- u-boot源码配置原理分析
- cocos2dx 简单血量条实现
- C++_类和对象_对象特性_成员变量占用对象内存_成员函数_静态成员函数_静态变量_都不占用对象内存_他们是分开存储的---C++语言工作笔记048
- 人工智能TensorFlow工作笔记010---TensorFlow 游乐场游戏,了解神经网络主要功能作用_工作流程
- C#.Net工作笔记005---c#中list合并去重_以及单纯合并_值类型list去重
- Linux工作笔记025---CentOS7.3安装Nginx
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
- 2015年 4月2号的日志
- PAT 1003 Emergency