二分法查找是基于有序_利用二分法查找有序数组中是否含有给定Value
//利用二分法查找有序数组中是否含有给定Value
class AlgorithmByZXQ
{
///
/// 二分法查找数组中某一数值
///
///
///
///
///
///
public static int BinarySearch(int []array,int start,int end,int key)
{
if (start > end)
return -1;
int mid = (start + end) / 2;
if (key == array[mid])
return mid;
else if (key > array[mid])
return BinarySearch(array, mid + 1, end, key);
else
return BinarySearch(array, start, mid - 1, key);
}
public static int BinarySearch2(int []array,int arrSize,int key)
{
if (array == null || arrSize <= 0)
return -1;
int start = 0;
int end = arrSize - 1;
int mid = 0;
while(start<=end)
{
mid = (start + end) / 2;
if (key == array[mid])
return mid;
else if (key > array[mid])
start = mid + 1;
else
end = mid - 1;
}
return -1;//一定要加,若key没有找到则返回-1;
}
}
//测试代码如下:
public void test()
{
int[] arr=new int[10];
for(int i = 0; i < 10; i++)
{
arr[i] = i;
}
Console.WriteLine(AlgorithmByZXQ.BinarySearch(arr, 0, 9, 4));
Console.WriteLine(AlgorithmByZXQ.BinarySearch2(arr, arr.Length, 7));
}
二分法查找是基于有序_利用二分法查找有序数组中是否含有给定Value相关推荐
- 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)
LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...
- 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找
算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...
- php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素
怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...
- Java实现利用分治法找到数组中的最大最小元素
Java实现利用分治法找到数组中的最大最小元素 基本思路: 不断的寻找数组的左子数组和右子数组,当左子数组和右子数组的长度为1时,最大最小元素均为本身,当左子数组和右子数组的长度为2时,直接进行一次比 ...
- 去掉java文件中的注释_利用JavaParser去除java文件中的注释
利用JavaParser去除java文件中的注释 个人博客:记录一下在项目实施过程中的一些点 情景回顾 之前项目有个需求,就是去掉.java文件中的所有注释,常用的方法是用正则匹配.然而在网络上查找到 ...
- java查找第k大的数字_[经典算法题]寻找数组中第K大的数的方法总结
今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值. 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以 ...
- c++读取文本文件里的指定位置的字符_利用FSO对象向文本文件中写入信息
大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第五节"用FSO对象向文本文件中写入信息" ...
- python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果
前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使 ...
- 折半查找并插入(在一个有序数组中通过二分查找数字,若存在,指出其是数组中第几个元素;反之插入数组并有序化)
import java.util.Arrays; import java.util.Scanner;/*** 折半查找(二分查找):从中间找(数组默认排好序了)* @author Family hap ...
最新文章
- have sb do / have sb doing / have sth dong 区别
- DOM操作之CRUD操作
- 18个最新的极简主义风格网站
- 在目标检测被“遗忘”领域进行探索后,百度开源最新力作UMOP:即插即用、无痛涨点
- Linux系统下Apache与Tomcat整合
- 获取系统特殊文件夹的路径
- 忘掉Java并发,先听完这个故事...
- ubuntu16.04安装,使用redis布隆过滤器示例
- cocos2d 走动椭圆
- android 缓存头像,android 实现类似微信缓存和即时更新好友头像示例
- 编程:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”...
- 写在2012的最后一天
- Monkey学习笔记三:Monkey脚本编写
- c语言正确声明的格式,c语言函数声明(c语言函数声明格式)
- 《Java编程规范学习笔记》
- riot修改服务器,如何修改riot拳头账号所在地区 riot账号改地区教程
- oppo enco free2 固件降级工具 (仅供测试使用)
- java 怎么去JTF边框_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?...
- PKUWC2019 总结
- 关闭或者开启Windows defender防火墙