scala实现二分查找
package day04.scala
/**
* Description: 使用二分查找法,查找元素为“70”的索引值 java
*/
object Demo2SecondaySearh {
def main(args: Array[String]) {
30
//使用二分查找法前提:有序集合
val arr = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
var minIndex = 0
var maxIndex = arr.length - 1
var middle = (minIndex + maxIndex) / 2
var index = -1;
while (maxIndex >= minIndex) {
if (arr(middle) == 30) {
index = middle
maxIndex = -1 //为了退出程序,通过让maxIndex小于minIndex
} else if (arr(middle) > 30) {
maxIndex = middle - 1
} else if (arr(middle) < 30) {
minIndex = middle + 1
}
middle = (minIndex + maxIndex) / 2 //没有要查找的元素,最终arr没有被赋值
}
println("index=" + index)
}
}
scala实现二分查找的更多相关文章
- 二分查找法---scala方式
二分查找法---scala方式 ,b) } }
- jvascript 顺序查找和二分查找法
第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...
- Java实现的二分查找算法
二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点 ...
- 从一个NOI题目再学习二分查找。
二分法的基本思路是对一个有序序列(递增递减都可以)查找时,测试一个中间下标处的值,若值比期待值小,则在更大的一侧进行查找(反之亦然),查找时再次二分.这比顺序访问要少很多访问量,效率很高. 设:low ...
- java实现二分查找
/** * 二分查找 * @param a * @param n * @param value * @return * @date 2016-10-8 * @author shaobn */ publ ...
- 最新IP地址数据库 二分逼近&二分查找 高效解析800万大数据之区域分布
最新IP地址数据库 来自 qqzeng.com 利用二分逼近法(bisection method) ,每秒300多万, 比较高效! 原来的顺序查找算法 效率比较低 readonly string i ...
- c#-二分查找-算法
折半搜索,也称二分查找算法.二分搜索,是一种在有序数组中查找某一特定元素的搜索算法. A 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束: B 如果某一特定元素大于或者小 ...
- 【Python】二分查找算法
二分查找:在一段数字内,找到中间值,判断要找的值和中间值大小的比较.如果中间值大一些,则在中间值的左侧区域继续按照上述方式查找.如果中间值小一些,则在中间值的右侧区域继续按照上述方式查找.直到找到我们 ...
- PHP实现文本快速查找 - 二分查找
PHP实现文本快速查找 - 二分查找法 起因 先说说事情的起因,最近在分析数据时经常遇到一种场景,代码需要频繁的读某一张数据库的表,比如根据地区ID获取地区名称.根据网站分类ID获取分类名称.根据关键 ...
- java二分查找举例讨论
最近做笔试题有这么一个关于二分查找的例子. 给一个有序数组,和一个查找目标,用二分查找找出目标所在index,如果不存在,则返回-1-(其应该出现的位置),比如在0,6,9,15,18中找15,返回3 ...
随机推荐
- Splashtop用于远程实验室的功能得到增强
加利福尼亚州圣何塞,2020年8月11日,远程访问和远程支持解决方案的领导者Splashtop Inc. 宣布更新其 Splashtop for Remote Labs 产品.该产品旨在帮助学生通 ...
- 服务器电源管理(Power Management States)
目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...
- 高效C#编程:通过智能线程池管理提升性能
前言 C#编程中,线程池(Thread Pool)是一个重要的概念,它允许开发者更有效地管理和利用系统资源.通过线程池,我们可以避免频繁地创建和销毁线程,从而减少系统开销并提高程序的响应速度和吞吐量. ...
- 文件系统(四):FAT32文件系统实现原理
FAT32是从FAT12.FAT16发展而来,目前主要应用在移动存储设备中,比如SD卡.TF卡.隐藏的FAT文件系统现在也有被大量使用在UEFI启动分区中. 为使文章简单易读,下面内容特意隐藏了很多实 ...
- 基于Python的性能优化
一.多线程 在CPU不密集.IO密集的任务下,多线程可以一定程度的提升运行效率. import threading import time import requests def fetch_url( ...
- flutter开发环境的搭建
下载flutter开发包,有670M左右. github的下载地址:https://github.com/flutter/flutter 或者官方下载地址:https://flutter.dev/do ...
- Java——成语接龙——递归算法——SpringJDBC+c3p0
这个例子,是我练习SpringJdbc+c3p0时所写.实现了输入一个成语,得到一颗不完整的接龙树.因为我数据库里有3W多个成语,在排除了接龙树成语重复的情况下,依然不能得到全部的结果,我感觉应该 ...
- Vue cli之在组件中使用axios
默认情况下,我们的项目中并没有对axios包的支持,所以我们需要下载安装. 在项目根目录中使用 npm安装包: npm install axios 接着在main.js文件中,导入axios并把axi ...
- ubuntu 虚拟机安装完docker 以后 出现tls时遇到的坑
网上很多都是更改镜像源,发现更改以后还是不行.请更改网路模式为桥接模式就ok了.
- MR+meta分析的摘录
第四篇公众号:来自微信 天桥下的卖艺者 零基础说科研,仅为个人学习用,如有侵权,可以删除 吸烟没什么创意,唯一的创意就是加入了MR和meta分析,作者显示介绍吸烟与多种疾病之间的因果关系扔不明确, 第 ...