數據結構:哈希表、排序和查找

一、哈希算法

? ? ? ? 1.將數據通過哈希算法映射成一個健值,存取都在同一個位置,實現數據的高效存儲和查找,時間復雜度由O(n)->O(1)

? ? ? ? 2.哈希碰撞:多個數據通過哈希算法得到的鍵值相同

二、哈希表

? ? ? ? 1.構建哈希表存放0-100之間的數據

? ? ? ? 2.哈希算法的選擇:將此數據的個位作為鍵值,然后用鏈表依次存入

三、排序和查找

(一)排序

? ? ? ? 1.冒泡排序:相鄰兩個元素比較,大的往后排,循環len-1次。

? ? ? ? ? ? ? ? 1.1時間復雜度為O(n^2)

? ? ? ? ? ? ? ? 1.2穩定的排序算法(兩個同樣小的,后面的會被排到前面去)

? ? ? ? 2.選擇排序:設每次循環前第一個元素為最小的下標為min,用這個依次去比較,如果有更小的將下標賦給min,循環比較完如果下標有變則交換元素。(存儲地址大用選擇排序)

? ? ? ? ? ? ? ? 2.1時間復雜度O(n^2)

? ? ? ? ? ? ? ? 2.2不穩定排序算法

? ? ? ? 3.插入排序:從第二個元素開始,依次和前面的元素比較,如果前一個比自己還小或者走到頭,插入即可。

? ? ? ? ? ? ? ? 3.1時間復雜度O(n^2),如果數組組有序時間復雜度可降低到O(n)

? ? ? ? ? ? ? ? 3.2穩定的排序算法

? ? ? ? 4.希爾排序:對半分,每一半的相同下標的元素用插入排序排序,然后循環繼續分半直到為1

? ? ? ? ? ? ? ? 4.1時間復雜度:O(nlogn)

? ? ? ? ? ? ? ? 4.2不穩定的排序算法

? ? ? ? 5.快速排序:左右兩邊low和high指針,先拿出來左邊的第一個元素20,然后從右邊high開始與20比較。20<33high左移,20>2將2放到low那里,然后開始一定low。最后將20放在兩個指針相遇的地方,繼續從兩邊開始進行此操作。

? ? ? ? ? ? ? ? 5.1時間復雜度O(nlongn)

? ? ? ? ? ? ? ? 5.2不穩定排序算法

(二)查找(二分查找)

? ? ? ? 1.時間復雜度為O(logn)

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

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

相關文章

【Java基礎】Java I/O模型解析:BIO、NIO、AIO的區別與聯系(Netty入門必備基礎)

Java I/O模型深度解析&#xff1a;BIO、NIO、AIO的區別與聯系 引言 在Java的網絡編程與文件操作中&#xff0c;I/O&#xff08;輸入/輸出&#xff09;模型是繞不開的核心話題。從早期的BIO&#xff08;Blocking I/O&#xff09;到Java 1.4引入的NIO&#xff08;Non-blocking I/…

windows PowerToys之無界鼠標:一套鍵鼠控制多臺設備

&#x1f4bb;簡介 在多設備協作的工作場景中&#xff0c;如何實現一套鍵鼠控制多臺設備了&#xff1f;微軟推出的 PowerToys 工具集中的 Mouse Without Borders&#xff08;無界鼠標&#xff09;&#xff0c;通過軟件層實現跨設備的鍵鼠共享與數據同步功能&#xff0c;為多臺…

一道比較難的sql題,篩選出重復字段的行數

select * from 導入數據表; id city_column 1 北京,上海,廣州 2 上海,上海,深圳 3 北京,杭州,北京 4 上海,廣州,深圳select substring_index(khmc,,,1), * from 導入數據表 truncate table 導入數據表 select count(distinct khmc) from 導入數據表; …

【K8s】整體認識K8s之與集群外部訪問--service

這一篇文章主要是對service發現新的理解 為什么要使用service服務發現&#xff1f; 首先pod的IP&#xff0c;是動態的&#xff0c;當我們重啟一個pod的時候&#xff0c;它會給它分配一個新的IP&#xff0c;但是如果微服務a想要去調用微服務b&#xff0c;他是需要知道微服務b所有…

k8s(自寫)

kubernetes k8s是什么&#xff1f;Kubernetes是什么&#xff1f;架構是怎么樣的&#xff1f;6分鐘快速入門_嗶哩嗶哩_bilibili kubernetes是google開源神器&#xff0c;介于應用服務和服務器之間&#xff0c;能夠通過策略協調和管理多個應用服務&#xff0c;只需要一個yaml文…

實現微信小程序的UniApp相機組件:拍照、錄像與雙指縮放

在微信小程序開發中&#xff0c;相機功能已成為許多應用的核心組成部分。本文將介紹如何使用UniApp框架實現一個功能豐富的相機組件&#xff0c;支持拍照、錄像、前后攝像頭切換以及雙指縮放等功能。功能概述這個相機組件具備以下核心功能&#xff1a;拍照功能&#xff1a;支持…

python pyqt5開發DoIP上位機【診斷回復的函數都是怎么調用的?】

目錄 文章合集 一、底層網絡接收:`_receive_loop`(觸發起點) 調用時機: 核心代碼: 作用: 二、數據解析:`handle_received_data`(判斷是否為診斷回復) 調用時機: 核心代碼(診斷回復相關部分): 作用: 三、UI顯示:`add_trace_entry`(展示到界面) 調用時機: 信號…

談物質的運動與運動的物質

運動的物質是不是物質的運動&#xff0c;如果假設是&#xff08;第一假設&#xff09;&#xff0c;那末運動的物質是物質的運動&#xff0c;而運動是物質的根本屬性&#xff0c;又運動的物質是物質&#xff0c;則物質的運動是物質&#xff0c;既然運動是物質的根本屬性&#xf…

【MLLM】多模態理解Ovis2.5模型架構和訓練流程

note 模型架構&#xff1a;延續 Ovis 系列創新的結構化嵌入對齊設計。 Ovis2.5 由三大組件構成&#xff1a;動態分辨率 ViT 高效提取視覺特征&#xff0c;Ovis 視覺詞表模塊實現視覺與文本嵌入的結構對齊&#xff0c;最后由強大的 Qwen3 作為語言基座&#xff0c;處理多模態嵌…

3.3單鏈表專題

順序表這種在標準庫已經實現好了&#xff0c;直接調用 pushback pushfront 這些o(1)表示不額外開辟空間src為value繼續走&#xff0c;下一個不是value&#xff0c;src值給dst空間&#xff0c;dst&#xff0c;dst剛好等于2&#xff0c;就是新數組長度。若從前向后兩個數組元素依…

linux系統學習(15.啟動管理)

目錄 一、運行級別 1.運行級別 2.運行級別命令 (1)runlevel (2)init 運行級別 3.永久修改啟動級別&#xff08;ubantu20.04&#xff09; 二、啟動過程 &#x1f539; 總結 三、啟動引導程序grub配置文件 一、運行級別 1.運行級別 2.運行級別命令 (1)runlevel (2)ini…

檢索優化-混合檢索

混合檢索&#xff08;Hybrid Search&#xff09;是一種結合了 稀疏向量&#xff08;Sparse Vectors&#xff09; 和 密集向量&#xff08;Dense Vectors&#xff09; 優勢的先進搜索技術。旨在同時利用稀疏向量的關鍵詞精確匹配能力和密集向量的語義理解能力&#xff0c;以克服…

Day17(前端:JavaScript基礎階段)

接續上文:Day16(前端:JavaScript基礎階段)_前端題目 csdn-CSDN博客 點關注不迷路喲。你的點贊、收藏&#xff0c;一鍵三連&#xff0c;是我持續更新的動力喲&#xff01;&#xff01;&#xff01; 主頁:一位搞嵌入式的 genius-CSDN博客 系列文章專欄: https://blog.csdn.ne…

OpenCV 輪廓分析實戰:從檢測到形狀匹配的完整指南

輪廓&#xff08;Contour&#xff09;是圖像中連續且具有相同灰度值的像素集合&#xff0c;是描述目標形狀、位置和結構的核心特征。在計算機視覺中&#xff0c;輪廓分析廣泛應用于目標定位、形狀識別、尺寸測量等場景&#xff08;如工業零件檢測、手寫數字識別&#xff09;。本…

2025最新uni-app橫屏適配方案:微信小程序全平臺兼容實戰

以下為uni-app實現微信小程序橫屏適配技術方案&#xff0c;包含核心原理、配置方法、代碼示例和注意事項&#xff1a;一、橫屏適配原理 微信小程序默認采用豎屏模式&#xff0c;橫屏適配需通過以下機制實現&#xff1a; 全局配置&#xff1a;在app.json中聲明支持橫屏頁面級配置…

深入解析Nginx常見模塊1

在Web服務器和反向代理服務器領域,Nginx憑借其高性能、穩定性和豐富的功能獲得了廣泛的應用。本文將介紹一些Nginx中常見的模塊,幫助你更好地理解和使用它們。 Nginx模塊簡介 Nginx的模塊系統是其強大功能的核心所在,它允許用戶根據需要靈活配置服務器的行為。Nginx的模塊大…

淺談new與::operator new

目錄 前言 1.為什么C要引入new/delete&#xff1f; 2.operator new與operator delete函數 它們的實際作用 Placement New&#xff08;定位new表達式&#xff09; 總結 前言 在寫上一篇博客“vector的模擬實現”時&#xff0c;我一直很好奇vector的private成員為什么要用三個封…

Java中Integer轉String

在 Java 中&#xff0c;將 Integer 轉換為 String 有多種方法&#xff0c;以下是常見的幾種方式&#xff1a;1. 使用 Integer.toString() 方法javaInteger num 123; String str Integer.toString(num); // 直接調用 Integer 的靜態方法2. 使用 String.valueOf()javaInteger n…

智能裝備如何與軟件結合?

一、什么是智能裝備&#xff1f; 智能裝備是具備“感知-決策-執行-自適應”閉環能力的智能化系統&#xff0c;本質是“傳統物理裝備”與“數字智能”的深度融合。它不僅能完成預設動作&#xff08;如傳統機械臂焊接&#xff09;&#xff0c;還能通過傳感器“觀察”環境、用算法…

react性能優化有哪些

React 性能優化的手段比較多&#xff0c;既有代碼層面的&#xff0c;也有構建層面的&#xff0c;還涉及到運行時調優。我幫你系統性梳理一份&#xff1a;&#x1f539; 一、渲染性能優化1. 減少不必要的渲染React.memo&#xff1a;對函數組件做淺比較&#xff0c;避免相同 prop…