嵌入式開發學習———Linux環境下數據結構學習(五)

折半查找(二分查找)

適用于已排序的數組,通過不斷縮小查找范圍定位目標值。

int binarySearch(int arr[], int size, int target) {int left = 0, right = size - 1;while (left <= right) {int mid = left + (right - left) / 2;if (arr[mid] == target) return mid;if (arr[mid] < target) left = mid + 1;else right = mid - 1;}return -1; // 未找到
}

插入排序

將未排序元素逐個插入已排序部分的正確位置。

void insertionSort(int arr[], int size) {for (int i = 1; i < size; i++) {int key = arr[i], j = i - 1;while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}
}

快速排序

通過分治策略選取基準值,將數組分為左右兩部分遞歸排序。

void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;
}int partition(int arr[], int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] < pivot) {i++;swap(&arr[i], &arr[j]);}}swap(&arr[i + 1], &arr[high]);return i + 1;
}void quickSort(int arr[], int low, int high) {if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}
}

關鍵點

  • 折半查找要求數組有序,時間復雜度為 O(log n)。
  • 插入排序適合小規模數據,時間復雜度為 O(n2)。
  • 快速排序平均時間復雜度為 O(n log n),需注意基準值選擇。

?

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

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

相關文章

(一)React +Ts(vite創建項目/useState/Props/Interface)

文章目錄 項目地址 一、React基礎 1.1 vite創建 1. 創建項目 2. 安裝項目所需環境 1.2 jsx 1. 三元表達式 1.3 基礎 1. 創建第一個組件 2. 安裝boostrap 3. 插件常用命令 4. map 二、組件 2.1 useState 1. useState 2. 使用 3.更新對象 4. 更新數組(增,刪,改) 5. 使用immer…

網關和BFF是如何演化的

BFF&#xff08;Backend For Frontend&#xff09;:對返回的數據結構進行聚合、裁剪、透傳等適配邏輯。 適用于API網關之后的數據聚合、裁剪與透傳簡化客戶端邏輯&#xff0c;減少網絡開銷敏感數據過濾 BFF邏輯層 架構沒有最好&#xff0c;要看是否滿足當前的業務場景。 業務的…

SQL中的WITH語句(公共表表達式CTE)解釋

SQL中的WITH語句&#xff08;公共表表達式CTE&#xff09; WITH語句&#xff0c;也稱為公共表表達式&#xff08;Common Table Expression&#xff0c;CTE&#xff09;&#xff0c;是SQL中一種強大的功能&#xff0c;它允許你創建臨時結果集&#xff0c;這些結果集可以在后續的…

服務器地域選擇指南:深度分析北京/上海/廣州節點對網站速度的影響

更多云服務器知識&#xff0c;盡在hostol.com你準備開一個覆蓋全國的線上零食店&#xff0c;現在萬事俱備&#xff0c;只差一個核心問題沒解決&#xff1a;你唯一的那個總倉庫&#xff0c;應該建在哪里&#xff1f;是建在哈爾濱&#xff0c;讓南方的朋友下單后&#xff0c;一包…

桶排序-Java實現

桶排序是一種分配式排序算法&#xff0c;將元素分到有限數量的桶里&#xff0c;每個桶再單獨排序&#xff08;比如用插入排序&#xff09;&#xff0c;最后依次把各個桶中的元素取出來即完成排序。 時間復雜度&#xff1a;最佳 O(n) | 平均 O(n n/k k) | 最差 O(n) 空間復雜…

oracle知識

這里寫自定義目錄標題Oracle常用的數據類型&#xff1a;Oracle實操&#xff1a;創建數據表Oracle約束建表的時候設置約束&#xff1a;表創建后添加添加約束&#xff1a;Oracle常用的數據類型&#xff1a; Oracle實操&#xff1a;創建數據表 Oracle約束 建表的時候設置約束&…

超級人工智能+無人機操控系統,振興鄉村經濟的加速器,(申請專利應用),嚴禁抄襲!

無人機邊緣智能系統&#xff1a;山林珍稀資源探測的完整架構與實戰指南本人設計的多模態邊緣AI系統已在秦嶺山區完成實地驗證&#xff0c;對7種高價值食用菌識別準確率達94.3%&#xff0c;定位誤差小于0.8米一、前沿技術融合的商業化機遇根據Gartner 2025年技術成熟度曲線分析&…

用騰訊地圖寫一個逆地址解析(很詳細)

首先說明以下代碼適合有前端基礎知識的同學。以下是css和html部分<!DOCTYPE html><html lang"zh-CN"><!-- lang是用來申明語言類型&#xff0c;這里申明為中文&#xff08;zh&#xff09;中國大陸&#xff08;CN&#xff09;補充中文繁體為zh-TW --&g…

在 Vue3+Vite+TypeScript 項目中使用 svg 文件并支持自定義樣式

參考文檔&#xff1a;vite-svg-loader 安裝與配置 安裝插件 pnpm add vite-svg-loader -D配置 // vite.config.ts import svgLoader from vite-svg-loaderexport default defineConfig({plugins: [vue(),svgLoader({defaultImport: component})] })使用 <script setup …

ShimetaPi M4-R1:國產高性能嵌入式平臺的異構計算架構與OpenHarmony生態實踐

在全球化芯片供應鏈波動及樹莓派等硬件持續漲價的背景下&#xff0c;ShimetaPi M4-R1 作為全棧國產化嵌入式開發平臺&#xff0c;以 高性能異構計算架構 和 開源鴻蒙原生支持 為核心突破點&#xff0c;填補了中高端邊緣設備開發的國產方案空白。其基于瑞芯微 RK3568B2 的硬件設…

zookeeper分布式鎖 -- 讀鎖和寫鎖實現方式

讀鎖和寫鎖讀鎖: 是共享鎖,讀鎖與讀鎖是可以兼容的,所以同時有多個請求都可以持有寫鎖: 是獨占鎖,寫鎖與任何鎖都互斥,所以只有一個請求持有,這個請求釋放寫鎖其他請求才能持有一旦持有寫鎖,說明數據在發送變化就不能讀了,自然一個請求就不能出現讀鎖和寫鎖共存的情況總結: 讀鎖…

第二篇:Linux 文件系統操作:從基礎到進階

目錄 一、文件與目錄管理基礎 創建文件 創建目錄 目錄結構查看 二、鏈接文件深入理解 創建軟鏈接 創建硬鏈接 核心區別對比 三、文件壓縮與解壓縮全攻略 1、壓縮命令對比 2、解壓縮命令 3、三種壓縮方式性能對比 4、通用解壓技巧 四、文件查找與搜索 1、按文件名…

嗶哩嗶哩招游戲內容產品運營

游戲內容產品運營【2026屆】&#xff08;崗位信息已獲jobleap.cn授權轉發到csdn&#xff09;嗶哩嗶哩集團 上海收錄時間&#xff1a; 2025年08月01日職位描述1、負責研究B站游戲創作者的創作過程、動機及遇到的問題&#xff0c;產出研究報告&#xff1b; 2、結合用研分析和相關…

談談Flutter中的Key

目錄 前言 一、什么是Key 1.StatelessWidget 2.StatefulWidget 3.加入Key后的效果 二、什么時候應該使用 Key&#xff1f; 1.Flutter判斷widget的邏輯 1.Flutter判斷組件身份的規則 1.Widget的類型&#xff08;runtimeType&#xff09;相同 2. Key相同&#xff08;ke…

重生之我在暑假學習微服務第八天《OpenFeign篇》

個人主頁&#xff1a;VON文章所屬專欄&#xff1a;微服務 微服務系列文章 重生之我在暑假學習微服務第一天《MybatisPlus-上篇》重生之我在暑假學習微服務第二天《MybatisPlus-下篇》重生之我在暑假學習微服務第三天《Docker-上篇》重生之我在暑假學習微服務第四天《Docker-下篇…

風光儲綜合能源系統雙層優化規劃設計【MATLAB模型實現】

本模型基于雙層優化框架&#xff0c;利用KKT條件、大M法、對偶理論求解&#xff0c;專注于綜合能源系統&#xff08;微電網&#xff09;多電源容量優化配置的模型介紹。代碼采用CPLEX求解器&#xff0c;注釋詳盡&#xff0c;非常適合新手學習該類問題的建模與求解思路。 模型總…

雪花算法重復id問題

原理解析 雪花算法實現簡單、適配性強&#xff0c;無論是電商訂單、日志追蹤還是分布式存儲&#xff0c;都能滿足 “唯一、有序、高效、可擴展” 的核心需求&#xff0c;因此成為分布式ID主流選擇。雪花算法生成的ID是一個64位的整數&#xff0c;由多段不同意義的數字拼接而成&…

MQTT 入門教程:三步從 Docker 部署到 Java 客戶端實現

在物聯網&#xff08;IoT&#xff09;與邊緣計算快速發展的今天&#xff0c;設備間的高效通信成為核心需求。MQTT 作為一種輕量級的發布 / 訂閱模式協議&#xff0c;憑借其低帶寬占用、強穩定性和靈活的消息路由能力&#xff0c;已成為物聯網通信的事實標準。無論是智能家居的設…

公網服務器上Nginx或者Openresty如何屏蔽IP直接掃描

0x01 背景云服務器很多時候為了通信需要設置公網訪問&#xff0c;但是網絡當中存在很多的掃描器&#xff0c;無時無刻在掃描&#xff0c;當80,443端口暴露時&#xff0c;成了這些掃描IP的攻擊對象&#xff0c;無時無刻收到威脅。0x02 掃描攻擊方式1.直接通過公網IP地址進行一些…

C語言(長期更新)第8講 函數遞歸

C語言&#xff08;長期更新&#xff09; 第8講:函數遞歸 跟著潼心走&#xff0c;輕松拿捏C語言&#xff0c;困惑通通走&#xff0c;一去不回頭~歡迎開始今天的學習內容&#xff0c;你的支持就是博主最大的動力。 目錄 C語言&#xff08;長期更新&#xff09; 第8講 函數遞歸…