雙指針算法:快速排序模擬實現

目錄

1.思路解析

2:代碼展示


1.思路解析

使用雙指針pre和cur

指針cur用于檢測符合條件的數據

cur和pre數據發生交換用于將符合條件的數據(比key小)向左扔

一輪循環結束時,以pre為分界點,除去key,pre左邊的數字整體比右邊小

所以要將key和pre的指針和數據交換以達到”以key為分界點,key左邊的數據整體比右邊小“

2:代碼展示

class solution
{
public:void QuickSort(vector<int>& nums, int left, int right){if (left > right) return;int key = left;int pre = left;int cur = left + 1;while (cur <= right){if (nums[cur] < nums[key])//使用cur去進行數據的探測,//達成條件的數據進行以下while循環{pre++;swap(nums[pre], nums[cur]);//將比key小的數據向pre左扔之后,//以pre為分界點,除去key,pre左邊的數據整體比pre右邊的數據小}cur++;}swap(nums[key], nums[pre]);key = pre;//將key特殊處理,這樣pre左邊所有的數據都比pre右邊的小QuickSort(nums, left, key - 1);QuickSort(nums, key + 1, right);}
};

總而言之

分兩種情況:
1:若cur<key,des和cur正常向后遍歷即可
2:但當cur>key時,cur繼續向后遍歷,直至cur<key才會停下
//如果cur遍歷到一串連續<key的數據,那么可將這一串數據整合視為一類東西(都小于key)
//我們的目的是在一輪循環中用cur將nums全部遍歷一遍,將比key小的數字全部移動到key左,是key成為分界節點

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

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

相關文章

物聯網IOT,講的什么?

想象一下,當你早晨醒來,智能咖啡機已經根據你的習慣準備好了香濃的咖啡;家中的溫度自動調節至最舒適的狀態;出門前,智能冰箱提醒你哪些食材需要補充……這些場景不再是科幻電影里的虛構,而是物聯網技術為我們帶來的現實便利。 物聯網的概念與起源 物聯網,顧名思義,是指…

SpringBoot項目,配置文件pom.xml的結構解析

pom.xml 是 Maven 項目對象模型&#xff08;Project Object Model&#xff09;的配置文件&#xff0c;它定義了 Maven 項目的基本設置和構建過程。以下是 pom.xml 文件的基本結構和一些常見元素的解析&#xff1a; 項目聲明 (<project>): <modelVersion>: 通常設置…

1.HI3559AV100 官方開發板sample運行

1.內核、文件系統部分 有關uboot&#xff0c;kernel&#xff0c;rootfs部分就不贅述&#xff0c;直接在SDK提供的鏡像文件進行燒錄即可。2.編譯MPP下的sample運行 實驗前準備&#xff1a;通過NFS方式掛載到開發板與主機通信傳輸文件 驅動和庫的部署&#xff1a;把MPP目錄下的…

單例模式詳解:概念與實用技巧

目錄 單例模式單例模式結構單例模式適用場景單例模式優缺點練手題目題目描述輸入描述輸出描述輸入示例輸出示例提示信息題解 單例模式 單例模式是一種創建型設計模式&#xff0c; 讓你能夠保證一個類只有一個實例&#xff0c; 并提供一個訪問該實例的全局節點。 只有一個實例的…

阿里巴巴店鋪電話采集軟件操作步驟解析

以下是一個簡單的程序&#xff0c;用于訪問1688店鋪并獲取店鋪信息&#xff1a; import requestsdef get_store_info(store_id):# 構建請求URLurl fhttps://detail.1688.com/offer/{store_id}.html# 發送GET請求response requests.get(url)# 如果請求成功if response.status…

震驚!運氣竟能如此放大!運氣的驚人作用,你了解嗎?

芒格&#xff1a;得到你想要的東西&#xff0c;最保險的辦法&#xff0c;就是讓自己配得上你想要的那個東西。今天仔細想了想這句話&#xff0c;他其實說的是無數成功人士的心聲 —— “我配得上&#xff01;” 美劇《絕命毒師》有個導演叫文斯吉里根&#xff08;Vince Gilliga…

注解【開發實踐】

文章目錄 一、注解概述1.1 什么是注解1.2 注解的作用1.3 一些特殊的注解 二、元注解2.1 Retention2.2 target2.3 Documented2.4 Inherited2.5 Repeatable 三、注解的使用3.1 定義注解3.2 編寫注解處理器3.3 注冊注解處理器 一、注解概述 1.1 什么是注解 注解&#xff08;Anno…

大疆2025校招內推

需要內推碼的請留言哦 期待你的加入

windows@資源管理器中的地址欄@訪問共享文件夾的各種方法@管理共享文件夾

文章目錄 資源管理器中的地址欄可以訪問什么訪問共享文件夾&#x1f47a;UNC路徑資源管理器打開共享文件夾純命令行方式訪問共享文件夾 共享文件夾相關操作查看所有已經共享的文件夾&#x1f47a;停止某個文件的共享 共享文件夾的訪問控制補充匿名訪問問題&#x1f60a;強制啟用…

集群限流sentinel實踐

參考&#xff1a; 集群模式 實踐 集群流控規則 其中 用一個專門的 ClusterFlowConfig 代表集群限流相關配置項&#xff0c;以與現有規則配置項分開&#xff1a; // 全局唯一的規則 ID&#xff0c;由集群限流管控端分配. private Long flowId;// 閾值模式&#xff0c;默認&…

吳恩達深度學習筆記:機器學習策略(2)(ML Strategy (2)) 2.5-2.6

目錄 第三門課 結構化機器學習項目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;機器學習策略&#xff08;2&#xff09;(ML Strategy (2))2.5 數據分布不匹配時的偏差與方差的分析&#xff08;Bias and Variance with mismatched data di…

師從IEEE fellow|博士后加拿大阿爾伯塔大學成行

V老師指定申請加拿大&#xff0c;優先對方出資的博士后&#xff0c;如果外方無資助&#xff0c;也可以自籌經費&#xff0c;但要求必須是博士后頭銜。最終我們為其落實了加拿大阿爾伯塔大學的postdoctoral fellow&#xff08;博士后研究員&#xff09;&#xff0c;盡管是無薪職…

adb的使用

xcode&#xff1a;https://juejin.cn/post/7005854415420653604 安裝 https://zhuanlan.zhihu.com/p/662190715 使用 1.安卓手機打開開發者模式&#xff0c;并連接電腦 2.在mac終端輸入命令adb logcat | grep {tag_name}即可查看日志 常用命令&#xff1a; https://zhuan…

2024亞太杯中文賽數學建模選題建議及各題思路來啦!

大家好呀&#xff0c;2024年第十四屆APMCM亞太地區大學生數學建模競賽&#xff08;中文賽項&#xff09;開始了&#xff0c;來說一下初步的選題建議吧&#xff1a; 首先定下主基調&#xff0c; 本次亞太杯推薦大家選擇B題目。C題目難度較高&#xff0c;只建議用過kaiwu的隊伍…

倉頡——申請內測、環境搭建、編譯測試

2024年6月21日&#xff0c;華為倉頡正式公開發布。 不少同學看過倉頡白皮書后&#xff0c;都在找SDK從哪下載&#xff0c;HelloWorld怎么跑。倉頡公眾號也及時發布了內測的方式&#xff0c;我也親自走了一遍整個流程&#xff0c; 一&#xff0c;申請內測 關注“倉頡編程語言…

暗潮短視頻:成都柏煜文化傳媒有限公司

暗潮短視頻&#xff1a;涌動的新媒體力量 在數字化時代的浪潮中&#xff0c;短視頻以其獨特的魅力和無限的潛力&#xff0c;迅速成為新媒體領域的一股強大力量。而在這片繁榮的短視頻領域中&#xff0c;成都柏煜文化傳媒有限公司“暗潮短視頻”以其獨特的定位和深邃的內容&…

Beyond Low-frequency Information in Graph Convolutional Networks

推薦指數: #paper/??? #paper/&#x1f4a1; 發表于:AAAI21 簡稱:FAGCL 問題提出背景: GCN常常使用低頻信息,但是在現實中,不僅低頻信息重要,高頻信息頁重要 如上圖,隨著類間鏈接的增加,低頻信號的增強開始變弱,高頻信號的增強開始增加. 作者貢獻: 不僅低頻信號重要,高…

智能井蓋采集裝置 開啟井下安全新篇章

在現代城市的脈絡之下&#xff0c;錯綜復雜的管網系統如同城市的血管&#xff0c;默默支撐著日常生活的有序進行。而管網的監測設備大多都安裝在井下&#xff0c;如何給設備供電一直是一個難題&#xff0c;選用市電供電需經過多方審批&#xff0c;選用電池供電需要更換電池包&a…

MySQL表的練習

二、創建表 1、創建一個名稱為db_system的數據庫 create database db_system; 2、在該數據庫下創建兩張表&#xff0c;具體要求如下 員工表 user 字段 類型 約束 備注 id 整形 主鍵&#xff0c;自增長 id N…

Spring Boot項目(蒼穹)

Spring Boot 框架詳解 概述 Spring Boot 是一個基于 Spring 框架的工具&#xff0c;用于簡化 Spring 應用程序的開發。它通過提供默認配置和快速啟動機制&#xff0c;使開發者可以專注于業務邏輯&#xff0c;而不必過多關注配置和底層細節。Spring Boot 讓開發變得更加簡單、…