//利用二分法查找有序数组中是否含有给定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相关推荐

  1. 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)

    LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...

  2. 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  3. php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素

    怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...

  4. Java实现利用分治法找到数组中的最大最小元素

    Java实现利用分治法找到数组中的最大最小元素 基本思路: 不断的寻找数组的左子数组和右子数组,当左子数组和右子数组的长度为1时,最大最小元素均为本身,当左子数组和右子数组的长度为2时,直接进行一次比 ...

  5. 去掉java文件中的注释_利用JavaParser去除java文件中的注释

    利用JavaParser去除java文件中的注释 个人博客:记录一下在项目实施过程中的一些点 情景回顾 之前项目有个需求,就是去掉.java文件中的所有注释,常用的方法是用正则匹配.然而在网络上查找到 ...

  6. java查找第k大的数字_[经典算法题]寻找数组中第K大的数的方法总结

    今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值. 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以 ...

  7. c++读取文本文件里的指定位置的字符_利用FSO对象向文本文件中写入信息

    大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第五节"用FSO对象向文本文件中写入信息" ...

  8. python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使 ...

  9. 折半查找并插入(在一个有序数组中通过二分查找数字,若存在,指出其是数组中第几个元素;反之插入数组并有序化)

    import java.util.Arrays; import java.util.Scanner;/*** 折半查找(二分查找):从中间找(数组默认排好序了)* @author Family hap ...

最新文章

  1. have sb do / have sb doing / have sth dong 区别
  2. DOM操作之CRUD操作
  3. 18个最新的极简主义风格网站
  4. 在目标检测被“遗忘”领域进行探索后,百度开源最新力作UMOP:即插即用、无痛涨点
  5. Linux系统下Apache与Tomcat整合
  6. 获取系统特殊文件夹的路径
  7. 忘掉Java并发,先听完这个故事...
  8. ubuntu16.04安装,使用redis布隆过滤器示例
  9. cocos2d 走动椭圆
  10. android 缓存头像,android 实现类似微信缓存和即时更新好友头像示例
  11. 编程:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”...
  12. 写在2012的最后一天
  13. Monkey学习笔记三:Monkey脚本编写
  14. c语言正确声明的格式,c语言函数声明(c语言函数声明格式)
  15. 《Java编程规范学习笔记》
  16. riot修改服务器,如何修改riot拳头账号所在地区 riot账号改地区教程
  17. oppo enco free2 固件降级工具 (仅供测试使用)
  18. java 怎么去JTF边框_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?...
  19. PKUWC2019 总结
  20. 关闭或者开启Windows defender防火墙

热门文章

  1. 如何通过供应链数字化业务协同,赋能化工企业降本增效
  2. 专访普林斯顿大学贡三元教授:做 AI 研究要有价值观,数学更是「制胜法宝」
  3. Windows程序设计第五版源代码---LINEDEMO
  4. [转]免费电话网专用免费平台
  5. java编程随机数练习题:产生双色球号码
  6. .out文件转bin文件
  7. 欧拉扬帆 潇湘启航 | 湖南欧拉操作系统生态大会圆满召开
  8. 【转】 COM 免注册技术
  9. D3D12渲染技术之顶点着色器
  10. 怎样才能快速地将爱奇艺qsv格式转换成mp4视频