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. 1.2_linearbinary_search_顺序(线性)查找二分(折半)查找

    --- 顺序查找 ---线性查找.从列表第一个元素开始,顺序进行搜索直到找到元素或搜索到列表最后一个元素为止--- 二分查找 ---折半查找.从有序列表的初始候选区 li[0:n] 开始通过对 待查找 ...

  2. 数组查找———二分(折半)查找法

    思路(PPT) 将要查找的元素和数组中间的元素比较,如果没找到则继续折半 代码 int nums[] = {2, 5, 9, 1, 3};System.out.println(Arrays.toStr ...

  3. java数组二分查找的简单例题_Java基础-练习 数组元素二分查找(折半查找)

    图解: 二分折半查找使用前提是数组是有序. 题目分析: 通过观察发现,本题目要实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 我们使用数组最中间位置的元素值与要查找的指定数 ...

  4. 折半查找的思想及源码_二分查找及对应的几道经典题目

    二分查找(Binary Search)属于七大查找算法之一,又称折半查找,它的名字很好的体现出了它的基本思想,二分查找主要是针对的是有序存储的数据集合. 假设有一个集合和一个待查找的目标值,每次都通过 ...

  5. C语言之二分查找法或折半查找法剖析(经典例题,经典解析)

    二分查找法(也叫折半查找法): 什么是二分查找? 具体查找的方式? 两种方法剖析 易错点列举 先举例题: int arr[]={1,2,3,4,5,6,7,8,9,10}; 找出7所在的位置. 分析之 ...

  6. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  7. 数据结构之二分查找(折半查找)

    数据结构之二分查找(折半查找) 二分查找又称折半查找,优点是次数比较少,查找速度快,平均性能好,其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先 ...

  8. python实现二分查找(折半查找)算法

    python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...

  9. 数据结构-顺序查找的二分查找法(折半查找)

    折半查找要求顺序表中的元素必须是排好序的,即数组中的元素是由小到大排好序的 思想: 1.以数组的边界确定low和high的值,low就是最低的0,high就是最高的n-1(n是元素的个数),这里的lo ...

  10. 让你秒懂的折半查找(二分查找)

    折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...

最新文章

  1. 【综述专栏】关于AI Architecture未来的一些思考
  2. FastDFS+Nginx实现文件服务器(转载)
  3. lnmp 中的laravel出现白屏的处理办法
  4. [iBoard 电子学堂][第〇卷 电子基础]第二篇 电路图与印刷电路板
  5. android 水平方向瀑布流,Android RecyclerView(瀑布流)水平/垂直方向分割线
  6. EntityFramework Code-First—领域类配置之DataAnnotations
  7. 揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效
  8. ldo和dcdc功耗_深度解析DCDC和LDO各自的原理和区别
  9. Star Schema完全参考手册读书笔记五
  10. SPIRE.DOC - .NET开发者的福利
  11. 调用Thread类的方法:public final String getName() 为什么得到的线程对象的名称默认是:Thread-0、Thread-1、Thread-2、...呢?...
  12. java学习笔记宋红康版本-01
  13. Windows CMD命令大全
  14. Print2Flash 3汉化破解版下载
  15. CNZZ埋点及点击量统计方法
  16. 一 简单句和并列句(2021-10-29)
  17. sublime build 系统必读
  18. 麻省理工计算机都学啥,麻省理工学院计算机科学专业排名第1(2020年USNEWS美国排名)...
  19. Python之解决”千年虫“问题篇
  20. 微型生物传感器,如何照亮地球最贫瘠的角落?

热门文章

  1. hdu 1142 记忆化搜索
  2. u-boot源码配置原理分析
  3. cocos2dx 简单血量条实现
  4. C++_类和对象_对象特性_成员变量占用对象内存_成员函数_静态成员函数_静态变量_都不占用对象内存_他们是分开存储的---C++语言工作笔记048
  5. 人工智能TensorFlow工作笔记010---TensorFlow 游乐场游戏,了解神经网络主要功能作用_工作流程
  6. C#.Net工作笔记005---c#中list合并去重_以及单纯合并_值类型list去重
  7. Linux工作笔记025---CentOS7.3安装Nginx
  8. Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
  9. 2015年 4月2号的日志
  10. PAT 1003 Emergency