使用选择排序和二分查找在数组中查找数据
《Java实用教程(第5版)微课版》
ISBN 978-7-302-46425-9
p29
例子5
能判断用户输入的一个整数是否在已知的数组中。程序效果如下图:
输入整数,程序判断该整数是否在数组中
122
122不在数组中
import java.util.Scanner;
public class ChooseFind {public static void main(String[] args) {int start=0,end,middle;int a[]= {12,45,67,89,123,-45,67,456,-46,-56,-3,-5,5,6,88,999};int N=a.length;for(int i=0;i<N;i++) { //选择法排序数组for(int j=i+1;j<N;j++) {if(a[j]<a[i]) {int t=a[j];a[j]=a[i];a[i]=t;}}}Scanner sc=new Scanner(System.in);System.out.println("输入整数,程序判断该整数是否在数组中:");int number=sc.nextInt();int count=0;end=N;middle=(start+end)/2;while(number!=a[middle]) {if(number>a[middle])start =middle;else if(number<a[middle])end=middle;middle=(start+end)/2;count++;if(count>N/2)break;}if(count>N/2)System.out.println(number+"不在数组中");elseSystem.out.println(number+"在数组中");}
}
使用选择排序和二分查找在数组中查找数据相关推荐
- 【02】Java进阶:09-冒泡排序、选择排序、二分查找、异常、异常的产生和处理、自定义异常、多线程
day09[排序算法.异常.多线程基础] 今日内容 冒泡排序 选择排序 二分查找 异常处理 多线程基础 教学目标 能够理解冒泡排序的执行原理 能够理解选择排序的执行原理 能够理解二分查找的执行原理 能 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- 挑战程序设计竞赛部分题目选择排序、二分查找找出下标、深度优先算法、求三角形max周长、蚂蚁算法、操作excel
首先提供帮助类 可能这个类还需要更新 .求最大值.求最小值.选择排序.二分查找找出下标.二分查找排好序列里面是否有那个值 public class Util {//求最大值public static ...
- 剑指Offer - 面试题53 - I. 在排序数组中查找数字 I(二分查找的变形版本)
1. 题目 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2示例 2: 输入: nums = [5,7,7,8, ...
- [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 专题 – 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置 难度:中等 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值 ...
- LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)
题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...
- LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
剑指 Offer 53 - I. 在排序数组中查找数字 I 思路一:二分单边 + 线性扫描 先用一次二分查找找到边界,再再边界里面寻找目标值 class Solution {public:int se ...
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- 【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I
[LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 文章目录 [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 一.二分法 总结 一.二分法 ...
最新文章
- 什么是VMware vSphere
- Visual Studio Code 配置 Markdown
- 实战SSM_O2O商铺_22【商铺列表】Service层开发
- 自由自在公司意式手工冰淇淋以“怪“取胜
- 8位数控分频器的设计_8位数控分频器
- 找斐波那契数列中的第N个数——递归与函数自调用算法
- 英语口语 week11 Friday
- java 多态判断非空_Java核心技术(四):继承
- oracle查询字段嵌套子查询,Oracle通过嵌套子查询连接
- 智能优化算法:金枪鱼群优化算法-附代码
- 管理感悟:产品功能比别人差,所以不能用?
- 多彩泡泡屏保特效(JAVA版)
- SubstanceDesigner制作PBR材质制作并且同步到Unity小尝试
- Html怎么判断ie5,css怎样判断IE浏览器?
- 相关性扫描匹配CSM与分支限界加速
- Linux-ARM开发
- 2008 R2 Remote Desktop Server driver RDPDR.sys cannot be started, error 577
- IP数据报中如果不分片,分片标志值是什么?
- 树莓派siri homekit_米家设备也能喊 Siri 控制,手把手教你把米家设备接入 Homekit
- 考研英语 - word-list-35
热门文章
- JMeter:No-GUI运行及生成漂亮的HTML报告
- MMD_2c_FrequentItemsets
- 基因测序3——三、四代测序技术来势汹汹,国产化仍在布局二代测序?
- Hybrid assembly with long and short reads improves discovery of gene family expansions
- 时钟,复位和电源管理
- 计算机无法打开策略,windows电脑本地计算机策略打不开该怎么解决?
- python 函数 默认参数
- flask传值给js
- python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call
- 人群场景的属性--Deeply Learned Attributes for Crowded Scene Understandin