首页 > 编程语言 >二分查找python与java实现

二分查找python与java实现

时间:2022-12-17 22:22:33浏览次数:41  
标签:二分 right java numArray python int left

  •   定义

  给定以下情景,假设有一个有序的数组(从大到小排列),我们需要从中找出我们所需的目标元素并返回其索引。一般的思想是可以使用for循环进行遍历,直到找到目标元素然后返回其索引。但是这种方法的效率是十分低下的,如果我们的目标元素在最后一个,而我们的数组又十分长时,检索是十分耗时的。

  •   应用与复杂度
  适用于正序排序,复杂度nlogn  
  •   蓝红边界划分

 

  •  java代码 
public class BinarySearch {
public static void main(String[] args) {
int[] numArray = {1,3,5,6,8,9};
System.out.println(binarySearch(numArray, 5));
}

static int binarySearch(int[] numArray, int targetValue){
int left = -1;
int right = numArray.length;
while (left + 1 != right ){
int m = (left + right) / 2;
if (numArray[m] <= targetValue){
left = m;
}else right = m;
}
return left;
}
}
  • python代码
def binary_search(list1: list, num):
"""二分查找:输入数组和其中的数,返回其索引"""
left = -1
right = len(list1)
while left + 1 != right:
m = (left + right) // 2
if list1[m] <= num: # 条件可改变,这是蓝色左边区域
left = m
else:
right = m
return left # 根据需求返回左边界还是又边界

标签:二分,right,java,numArray,python,int,left
From: https://www.cnblogs.com/sardine96/p/16989723.html

相关文章

  • java和springboot开发祭祀小程序扫墓系统
    介绍绿色祭祀小程序,用户微信授权登录后可以发布纪念馆(祭祀名人,祭祀英烈,祭祀个人,可以设置成公开状态或者隐私状态)购买祭祀礼物和留言,用户还可以发布代祭的信息演示视频小......
  • Java环境配置
    Java环境搭建jdk8的下载与安装下载下载官网:JavaDownloads|Oracle下载版本:jdk-8u321-windows-x64.exe百度网盘链接:https://pan.baidu.com/s/1A8D0T0S8cSyz9aQ2ANz......
  • Gitblit的windows安装(java编写)
    准备工作:1、jdk(大于等于1.8版本)2、GitBlit压缩包;jdk下载地址:https://www.java.com/zh-CN/Gitblit下载地址:http://www.gitblit.com/2、安装java的环境变量此处不在赘述,可......
  • Python - 习题练习(1-3)
    一、前言接下来通过一些习题练习下代码感,以及熟悉解题思路和基本函数使用,参考博客:https://www.cnblogs.com/poloyy/p/15255670.html二、习题实战1、open函数、字典.......
  • 【Python自动化框架pytest(三)--数据驱动(参数化)】
    参数化,就是把测试过程中的数据提取出来,通过参数传递不同的数据来驱动用例运行。其实也就是数据驱动的概念。在Unittest中,我们讲过使用ddt库配合unittest实现数据驱动......
  • 【Python自动化框架pytest(四)--其他】
    一、pytest中的skip和xfailskip跳过测试函数skip意味着您希望只有在满足某些条件时测试才能通过,否则pytest应该跳过运行测试。常见的例子是跳过非Windows平台上的仅限Wind......
  • Java超市系统超市自提超市多商家系统源码超市自提网站
    简介Ssm多商家超市自提系统。用户注册申请开店成为商家,普通注册用户下单时选择离自己较近的自提点次日取货。管理员进行店铺审核、用户、分类管理等。演示视频https://w......
  • java开发的师生评教小程序学生对老师评价老师对班级评价打分题单选题意见框系统选课系
    简介源码1.0(源码2.0+选课功能,请往下看)师生评教小程序,学生可以对老师进行评价,老师可以对班级行进评级。管理员可以创建不同的评教模板(单选题0分或者10分,打分题0-10分,意见......
  • [oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export
    ​ 放入路径回忆上次内容我们要在任意路径下直接执行sleep.py把sleep.py放在/usr/bin/下面最终可以在任意位置执行程序sleep.py但是/usr/bin里面放......
  • Java Database Operation
    DatabaseOperation(数据库操作)DatabaseOverview数据库是以某种文件结构存储的一些列信息表可以通过某些语句访问这些表、选择表中的行或者列、对表进行排序、以及根据......