java数组回顾---线性查找最大值最小值---二分查找
import java.util.Scanner;
public class ArrayDemo {
public static void main(String []args) {
//-------------------------------------------------------
//线性查找
int [] num ={10,20,30,40,50};
Scanner input1 = new Scanner(System.in);
System.out.println("请输入要查找的数(10,20,30,40,50):");
int inp = input1.nextInt();
input1.close();
for(int i = 0;i<num.length;i++) {
if (inp == num[i]) {
System.out.println("所查数下标为:"+i);
}else {
if(i==num.length-1 ) {
System.out.println("-1");
}
}
}
//-------------------------------------------------------
//查找数组最大值,最小值
int[] maxMin = new int[] {20,60,80,70,30,10,50};
System.out.println("数组为(20,60,80,70,30,10,50),求最大值和最小值:");
//方法一(冒泡排序):
int temp=0;
for(int i = 0;i<maxMin.length-1;i++) {
if(maxMin[i]>maxMin[i+1]) {
temp = maxMin[i+1];
maxMin[i+1] = maxMin[i];
maxMin[i] = temp;
}
}
System.out.println("最大值为:"+maxMin[6]);
for(int i = 0;i<maxMin.length-1;i++) {
if(maxMin[i]<maxMin[i+1]) {
temp = maxMin[i+1];
maxMin[i+1] = maxMin[i];
maxMin[i] = temp;
}
}
//方法二:
int max = maxMin[0];
for(int i = 1;i<maxMin.length-1;i++) {
if(maxMin[i]>max) {
max = maxMin[i];
}
}
System.out.println("最大值为:"+max);
int min = maxMin[0];
for(int i = 1;i<maxMin.length-1;i++) {
if(maxMin[i]<min) {
min = maxMin[i];
}
}
System.out.println("最小值为:"+min);
//--------------------------------------------------------
//二分查找
int[] BinarySearch = new int[] {10,20,30,40,70,80,90,100};
Scanner input2 = new Scanner(System.in);
System.out.println("请输入要查找的数(10,20,30,40,70,80,90,100):");
input2.close();
int start;
int end;
int middle;
int index = -1;//保存找到书所在下标
start = 0;//保存起始下标
end = BinarySearch.length-1;//保存终点下标
while(start <=end) {
middle = (start+end)/2;//找到中间元素 对应的值
if(num2 == BinarySearch[middle]) {
index = middle+1;
break;
}
if(num2 > BinarySearch[middle]) {//如果是大于中间的数
start = middle+1;//起始下标改为中间数的下一个数
}
if(num2 < BinarySearch[middle]){
end = middle-1;//终点下标改为中间数的上一个数
}
}
if(index == -1){
System.out.println("没查到");
}
else{
System.out.println("查到了,位置在第"+index+"位");
}
}
}
java数组回顾---线性查找最大值最小值---二分查找的更多相关文章
- SDUT 3376 数据结构实验之查找四:二分查找
数据结构实验之查找四:二分查找 Time Limit: 20MS Memory Limit: 65536KB Submit Statistic Problem Description 在一个给定的无重 ...
- SDUT-3376_数据结构实验之查找四:二分查找
数据结构实验之查找四:二分查找 Time Limit: 30 ms Memory Limit: 65536 KiB Problem Description 在一个给定的无重复元素的递增序列里,查找与给 ...
- Java查找算法之二分查找
二分查找是一种查询效率非常高的查找算法.又称折半查找. 一.算法思想 有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩小一半的查找范围,直到匹配成功. 一个情景:将表中间位置 ...
- JAVA源码走读(二)二分查找与Arrays类
给数组赋值:通过fill方法. 对数组排序:通过sort方法,按升序.比较数组:通过equals方法比较数组中元素值是否相等.查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找 ...
- Java实现四大基本排序算法和二分查找
Java 基本排序算法 二分查找法 二分查找也称为折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜 ...
- java数据结构学习(一)之二分查找
二分查找法与我们在孩童时期玩过的猜数的游戏一样,这个游戏里一个朋友会让你猜他正想的一个1至100的数,当你猜了一个数后,他会告诉你三种选择的一个:你猜的比她想的大,或小,或猜中了.为了能用最少的次 ...
- C语言数组之冒泡排序+折半查找法(二分查找)
冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...
- C++数组或vector求最大值最小值
可以用max_element()及min_element()函数,二者返回的都是迭代器或指针. 头文件:#include<algorithm> 1.求数组的最大值或最小值 1)vector ...
- 数据结构与算法之PHP查找算法(二分查找)
二分查找又称折半查找,只对有序的数组有效. 优点是比较次数少,查找速度快,平均性能好,占用系统内存较少: 缺点是要求待查表为有序表,且插入删除困难. 因此,折半查找方法适用于不经常变动而查找频繁的有序 ...
随机推荐
- SQL基本操作(工作中够用了)
以下文章内容都是我自己从平时学习SQL语言时整理而来,写这篇文章是希望我或大家在使用能更方便的查询. 如果有不完整或不正确的地方请大家指出~谢谢大家 基本SQL操作 创建数据库 CREATE DA ...
- PhpStorm 破解及 XDebug 调试
PhpStorm 破解及 XDebug 调试 PhpStorm 破解 PhpStorm 10.0.2 破解 地址:http://jingyan.baidu.com/article/20095761cb ...
- [C语言] 数据结构-预备知识指针
所有的伟大源于一个勇敢的开始 数据结构预备知识 指针 1.指针:是C语言的灵魂,指针=地址 地址:内存单元的编号 指针变量:存放内存单元地址的变量 int *p;//p是指针变量,int *表示该p变 ...
- 十四、ReentrantLock重入锁
一.简介 JDK提供了Lock接口来实现更丰富的锁控制,ReentrantLock即Lock接口的实现 JDK文档:http://tool.oschina.net/uploads/apidocs/jd ...
- 五、线程本地ThreadLocal
一.线程私有 在多线程情况下,对于一个共享的数据可能会产生线程安全问题.最简单的解决办法就是堆访问共享数据的时候加锁,但我们知道加锁是很影响效率的,尤其是像数据库连接这样耗费资源较多的情况下,加锁就意 ...
- 使用admin lte 碰到访问Google字体的问题
下载了admin lte 的模板,运行的时候,发现很慢,看了一下console,发现adminlte.css里有import google的字体文件,众所周知的原因,无法访问,所以网页很慢,没办法,只 ...
- 在弹框中获取foreach中遍历的id值,并传递给地址栏。
1.php有时候我们需要再弹框中获取foreach中遍历的数据(例如id),在弹框中点击按钮并传递给地址栏跳转.那么应该怎么做呢. 2. 点击取现按钮,如果没有设置密码->弹框 3. 点击去设置 ...
- CSS实现太极图(3个div实现)
使用三个div实现太极图的步骤如下: HTML部分 <div class="box"> <div class="yin"></di ...
- 前端动画小记---bilibili ( ゜-゜)つロ客户下载小动画
逛哔哩哔哩 ( ゜-゜)つロPC版的时候看到一个蛮有意思的动画,指导用户去下载客户端,于是摸索实现了一个. 原动画效果 可以看到,一个静止的小电视人,当鼠标移动到电视人身上时,电视人慢慢变身成为一个小 ...
- Java中的继承:父类和子类的关系
一.父类引用指向子类对象时 1.若子类覆盖了某方法,则父类引用调用子类重新定义的新方法 2.若子类未覆盖某方法,则父类引用调用父类本身的旧方法 3.若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性 ...