首页 > 编程语言 >查找/排序算法

查找/排序算法

时间:2024-03-05 14:23:27浏览次数:30  
标签:int 算法 查找 array 排序 left

//二分查找
public static boolean BinarySearch(int target,int[] array){
        int left = 0;
        int right = array.length - 1;
        while (left <= right) {
            int middle = (left + right) / 2;//中间位置
            if (array[middle] < target) {//小于关键字,舍弃左边
                left = middle + 1;
            } else if (target < array[middle]) {//大于关键字,舍弃右边
                right = middle- 1;
            } else {
                return true;
            }
        }
        return false;
}
//有时会出现left和right非常接近整型最大值的情况,这时如果再这样求中间位置就会出现溢出问题,因此要用代码 middle=left+(right-left)/2 代替。
//二者的功能等价,并且后者不会出现溢出问题

标签:int,算法,查找,array,排序,left
From: https://www.cnblogs.com/Yolanda-fan/p/18053958

相关文章

  • day55 动态规划part12 代码随想录算法训练营 714. 买卖股票的最佳时机含手续费
    题目:714.买卖股票的最佳时机含手续费我的感悟:终于能秒1道了理解难点:跟之前一样,多了一个手续费而已听课笔记:我的代码:classSolution:defmaxProfit(self,prices:List[int],fee:int)->int:#简单dp=[[0]*2for_inrange(len(prices))......
  • (续)signal-slot:python版本的多进程通信的信号与槽机制(编程模式)的库(library) —— 强化学
    前文:signal-slot:python版本的多进程通信的信号与槽机制(编程模式)的库(library)——强化学习ppo算法库sample-factory的多进程包装器,实现类似Qt的多进程编程模式(信号与槽机制)——python3.12版本下成功通过测试......
  • 如何在SQL中查找某一字段在哪些表中
    在SQL中,要找出数据库中包含特定字段(列)的所有表,可以使用数据库的系统表或信息架构视图。不同的数据库系统(如MySQL,SQLServer,PostgreSQL等)有不同的系统表和查询方式。以下是几种常见数据库的查询方法:MySQL在MySQL中,你可以使用INFORMATION_SCHEMA.COLUMNS表来查找特定字段名存......
  • day55 动态规划part12 代码随想录算法训练营 309. 买卖股票的最佳时机含冷冻期
    题目:309.买卖股票的最佳时机含冷冻期我的感悟:网友讲的更好,更好理解。理解难点:冷冻期是i-2初始化dp【1】【0】是买入的用的最小消耗,max(-prices[0],-prices[1]) 听课笔记:听不懂,可以借鉴的是:卖的状态可以进一步拆分我的代码:classSolution:defmaxProfit(se......
  • JavaScript逆向之md5算法
    md5算法md5算法简介:md5算法是一种摘要算法,主要用来进行数字签名、文档一致性验证等。python实现md5点击查看代码fromhashlibimportmd5s="123456"obj=md5()#把你要计算的字节丢进去obj.update(s.encode("utf-8"))md5_value=obj.hexdigest()print(md5_value......
  • mssql排序order by42000报错解决
    原文链接:https://blog.csdn.net/wang1qqqq/article/details/122961882在mssql查询中,如果子查询中使用orderby,会出现报错:[42000][Microsoft][ODBCDriver17forSQLServer][SQLServer]除非另外还指定了TOP、OFFSET或FORXML,否则,ORDERBY子句在视图、内联函数、派生表、子......
  • 代码随想录算法训练营day13 | leetcode 239. 滑动窗口最大值、347. 前 K 个高频元素
    目录题目链接:239.滑动窗口最大值-困难题目链接:347.前K个高频元素-中等题目链接:239.滑动窗口最大值-困难题目描述:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。......
  • 43泛型算法和绑定器
    泛型算法和绑定器泛型算法是STL库里面定义的一些算法,这些算法可以用一个接口操作各种数据类型,因此称为泛型算法。#include<algorithm>泛型算法接受的都是迭代器,这是为了统一形式同时可以额外接受函数对象,更改泛型算法的功能绑定器当需要一个一元函数对象,但需要使用一......
  • 代码随想录算法训练营第三十六天| ● 435. 无重叠区间 ● 763.划分字母区间 ● 56.
    无重叠区间 题目链接:435.无重叠区间-力扣(LeetCode)思路:我的思路是先将所有区间按左端点从小到大排序,左端点相同时右端点从小到大排序。接下来遍历数组,如果下一个区间与该区间有重叠部分,count加1,同时遍历下下一个区间(下一个区间被视为删除),同时如果下一个区间被包含在该区间中,......
  • linux对文件内容去重,排序与不排序
    方法一,使用uniq相关命令进行去重用法:uniq[选项]...[输入文件[输出文件]]从<输入文件>(或标准输入)中过滤内容相同的相邻的行,并写到<输出文件>(或标准输出)。不带选项时,内容相同的行将仅输出一次。长选项的必选参数对于短选项也是必选的。-c,--count在每行......