【C++】二分查找算法

1.題目

2.算法思路

暴力解法:可以將數組遍歷一遍,就可以找到。時間復雜度為O(n)。不算太差,可以接受。

但是有更優秀的解法:

就是二分查找算法。

算法的特點:我們所查找的“數組”具有二段性。這里的二段性不一定有序。而是我們可以找到某種規律,可以讓我們把數組分為兩部分,然后舍掉一部分,對另一部分進行求解。

本題中數組的有序就是二段性的一種體現。

在后面的題目中,我會舉一個無序的但是可以用二分查找算法解決的題目。

3.代碼

class Solution {
public:int search(vector<int>& nums, int target) {int left=0,right=nums.size()-1;while(left<=right){int mid=left+(right-left)/2;//防止溢出if(nums[mid]>target) right=mid-1;else if(nums[mid]<target) left=mid+1;else return mid;   }return -1;}
};

時間復雜度:O(longn)。

4.算法模板

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16136.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16136.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16136.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

頭歌OpenGauss數據庫-L.應用開發(Python)-選做

第1關:簡單查詢 編程要求 正確使用 psycopg2 ,查詢金融應用場景數據庫 finance 的 client 表(客戶表)中郵箱不為空的客戶信息,列出客戶姓名,郵箱和電話.一個展示結果的示例如下(字體顏色不是編程要求): 注意:你要連接到finance數據庫上(后面第2-6關也是連接這個數據庫)…

【C/C++】詳解關聯容器map的使用

&#x1f517; 運行環境&#xff1a;Matlab &#x1f6a9; 撰寫作者&#xff1a;左手の明天 &#x1f947; 精選專欄&#xff1a;《python》 &#x1f525; 推薦專欄&#xff1a;《算法研究》 &#x1f510;#### 防偽水印——左手の明天 ####&#x1f510; &#x1f497; 大家…

mpv常用快捷鍵

1 mpv mpv是Linux下的一個開源視頻播放器&#xff0c;使用Manjaro的話安裝方式如下&#xff1a; paru -S mpv2 常用快捷鍵 q&#xff1a;推出w/e&#xff1a;視頻縮放r/t&#xff1a;調整字幕位置u&#xff1a;開啟/關閉ass/ssa字幕覆蓋i&#xff1a;顯示當前播放的視頻信息…

Oracle 并行和 session 數量的

這也就是為什么我們指定parallel為4&#xff0c;而實際并行度為8的原因。 insert create index&#xff0c;發現并行數都是加倍的 Indexes seem always created with parallel degree 1 during import as seen from a sqlfile. The sql file shows content like: CREATE INDE…

求平方數 1 到 N 之間所有正整數的平方數

概念&#xff1a; 平方數的概念&#xff1a; 平方數是指一個數的平方等于另一個數的數&#xff0c;具有正平方數和負平方數&#xff0c;其性質和運用在多領域中具有重要意義&#xff0c;如幾何、自然科學、計算機科學和物理學。平方數的計算和運用在多領域中常見&#xff0c;例…

滑不動窗口的秘密—— “滑動窗口“算法 (Java版)

本篇會加入個人的所謂魚式瘋言 ??????魚式瘋言:??????此瘋言非彼瘋言 而是理解過并總結出來通俗易懂的大白話, 小編會盡可能的在每個概念后插入魚式瘋言,幫助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能說的不是那么嚴謹.但小編初心是能讓更多人能接…

《python編程從入門到實踐》day39

# 昨日知識點回顧 創建主頁、繼承模版、顯示特定主題頁面 # view.py from django.shortcuts import render# 導入所需數據相關聯的模型 from .models import Topic# Create your views here. def index(request):"""學習筆記的主頁"""#…

Java進階學習筆記13——抽象類

認識抽象類&#xff1a; 當我們在做子類共性功能抽取的時候&#xff0c;有些方法在父類中并沒有具體的體現&#xff0c;這個時候就需要抽象類了。在Java中&#xff0c;一個沒有方法體的方法應該定義為抽象方法&#xff0c;而類中如果有抽象方法&#xff0c;該類就定義為抽象類…

ISCC2024個人挑戰賽WP-迷失之門

&#xff08;非官方解&#xff0c;以下內容均互聯網收集的信息和個人思路&#xff0c;僅供學習參考&#xff09; 迷失之門 方法一&#xff1a; IDA看一下 check函數邏輯 進入到check2函數 R鍵將ascii碼轉字符&#xff0c;寫出逆向腳本 #include <stdio.h> #include &l…

嵌入式0基礎開始學習 Ⅱ 數據結構(7)小結練習

1,如果使用比較高效的算法判斷單鏈表有沒有環的算法中&#xff0c;至少需要幾個指針&#xff1f; A,1 B,2 C,3 D,4 2&#xff0c;以鏈接方式存儲的線性表(X1,X2,...,Xn),當訪問第i個元素的時間復雜度為? A,o(1) B,o(n) C,o(logn) Do(n) 3,下列鏈表中&…

Linux C++ Socket 套接字、select、poll、epoll 實例

文章目錄 1. 概述2. TCP 網絡編程實例2.1 服務器端2.2 客戶端2.3 運行截圖 3. I/O 模型3.1 阻塞式I/O模型3.2 非阻塞I/O模型3.3 I/O 復用模型3.4 信號驅動式I/O3.5 異步I/O模型 4. I/O復用之 select4.1 select 函數描述4.2 服務端代碼4.3 客戶端代碼4.4 運行截圖 5. I/O復用之 …

RocketMq局部順序消息

package com.ldj.rocketmq.producer;import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.common.message.Message;import java.nio.charset.StandardCharsets;/*** User: ldj* Date: 2024/5/26* Time: 15:09* Description: 局部順序消…

【Linux】$()中的內容與不加$()時有什么區別

$()中的內容與不加$()有什么區別&#xff0c;例如$(/usr/local/hadoop/bin/hadoop classpath)與/usr/local/hadoop/bin/hadoop classpath兩者有何區別&#xff1f;&#xff1f;&#xff1f; 關于這個問題&#xff0c;筆者建議可以參考如下文章&#xff1a; Linux—shell中$((…

css卡片翻轉 父元素翻轉子元素不翻轉效果

css卡片翻轉 父元素翻轉子元素不翻轉效果 vue <div class"moduleBox"><div class"headTitle"><span class"headName">大額案例</span></div><div class"moduleItem"><span class"module…

three.js判斷物體在人的前面,還是后面

three.js判斷物體在人的前面&#xff0c;還是后面 const player new THREE.Vectors(10, 0, 5); const mesh new THREE.Vectors(15, 0, 6);上面&#xff0c;兩個變量分別表示&#xff0c;玩家的位置&#xff0c;物體的位置。 從這發現&#xff0c;當玩家和物體的角度關系 小…

spring boot 整合j2cache 項目啟動警告 Redis mode [null] not defined. Using ‘single‘

好 之前的文章 spring boot 整合j2cache 基礎操作 在spring boot環境中整合了 j2cache 我們 項目啟動時 日志會有一個關鍵信息 Redis的模式 沒有定義 默認使用 single Redis 的這個模式有四種 大家可以自己去網上找一下 做個了解 不用很糾結 我們直接在 j2cache.properties …

一文讀懂Apollo客戶端配置加載流程

本文基于 apollo-client 2.1.0 版本源碼進行分析 Apollo 是攜程開源的配置中心&#xff0c;能夠集中化管理應用不同環境、不同集群的配置&#xff0c;配置修改后能夠實時推送到應用端&#xff0c;并且具備規范的權限、流程治理等特性。 Apollo支持4個維度管理Key-Value格式的配…

Elasticsearch智能數據分析平臺項目

Elasticsearch智能數據分析平臺項目是一個功能強大且靈活的數據分析工具,旨在幫助企業快速、準確地分析和挖掘數據中的價值。以下是關于該項目的一些關鍵特點和功能: 數據搜索: Elasticsearch作為全球下載量最大的搜索引擎,支持從關鍵字搜索到向量搜索等多樣化搜索方式,讓…

比勤奮更重要的是系統思考的能力

不要在接近你問題癥狀的地方尋找解決辦法&#xff0c;要追溯過去&#xff0c;查找問題的根源。通常&#xff0c;最有效的活動是最微妙的。有時最好按兵不動&#xff0c;使系統自我修正&#xff0c;或讓系統引導行動。有時會發現&#xff0c;最好的解決辦法出現在完全出乎預料的…

HTML藍色愛心

目錄 寫在前面 HTML入門 完整代碼 代碼分析 運行結果 系列推薦 寫在后面 寫在前面 最近好冷吖&#xff0c;小編給大家準備了一個超級炫酷的愛心&#xff0c;一起來看看吧&#xff01; HTML入門 HTML全稱為HyperText Markup Language&#xff0c;是一種標記語言&#…