【數據結構與算法】數據結構核心概念系統梳理

第一章 緒論:基礎概念體系

??算法:問題求解步驟的描述。
??非遞歸的算法效率更高。

1.1 邏輯結構 vs 存儲結構

維度邏輯結構存儲結構(物理結構)
定義數據元素之間的邏輯關系數據結構在計算機中的實現方式
分類線性/樹形/圖/集合順序/鏈式/索引/散列
獨立性獨立于存儲結構依賴邏輯結構
示例線性表有序表數組(抽象層面)順序表、鏈表、靜態鏈表
ADT描述描述操作語義描述具體實現
  • 存儲數據時,要存元素的值和元素之間的關系。

1.2 抽象數據類型(ADT)三要素

ADT List {數據對象:D = {a_i | a_i∈ElemSet, i=1,2,...,n}數據關系:R = {<a_{i-1},a_i> | a_{i-1},a_i∈D}基本操作:InitList(&L), ListInsert(&L,i,e)...
}

第二章 三種表:具體實現對比

2.1 核心概念關系

術語本質所屬層級與其它概念關系
線性表邏輯結構邏輯層可用順序/鏈式存儲實現
有序表邏輯結構+約束邏輯層元素有序的線性表
順序表存儲結構物理層線性表的順序存儲實現
數組【隨機存取】邏輯結構+存儲結構跨層概念可視為特殊的順序表

2.2 順序表 vs 有序表 vs 線性表

特性線性表(抽象)順序表(實現)有序表(特殊)
元素關系前驅后繼關系物理相鄰存儲按關鍵字有序
存儲方式與實現無關連續內存空間通常用順序存儲
查找效率O(n)按位O(1),按值O(n)順序存儲時可二分O(logn)
插入刪除依賴實現移動元素O(n)需保持有序性O(n)
  • 棧和隊列的ADT相同,即邏輯結構都是線性表。
  • 順序表具有隨機存取是指:查找序號i的元素的時間,與順序表中元素個數n無關
  • 擴容問題?順序表插入算法:n個空間滿了時,申請m個,若申請失敗,則說明系統沒有:n+m個可分配的存儲空間(n也要被復制進新表)
  • 對長度為n的、順序存儲的有序表,實現給定的算法中時間復雜度為O(1)的是:獲取第i個值的算法。
  • 線性表是具有n個同類型數據元素的有限序列。除開始元素外,每個元素只有唯一的前驅元素。
  • 若非空線性表中的元素,既沒有前驅也沒有后繼,則:表中只有1個元素。
  • 線性表的順序存儲結構:是一種隨機存取的存儲結構。
  • 線性表要取前驅后繼則采用什么物理結構:順序表最好。
  • 線性表要取指定序號在最后插入刪除:物理結構用順序表最好。
  • 按值查找一定要比較值,所以與長度有關。

第三章 存儲結構

3.1 順序存儲 vs 鏈式存儲

特性順序存儲鏈式存儲
物理結構連續內存空間離散節點+指針
存儲密度100% ,所以密度大<100%(需存儲指針)
訪問方式隨機存取(直接計算地址)順序存取(必須遍歷)
插入刪除O(n)(需移動元素)O(1)(已知位置)
擴容方式需重新分配+復制動態增長
緩存友好性好(空間局部性)
代表實現順序表、靜態數組單鏈表、雙鏈表
典型應用頻繁隨機訪問場景動態數據集合
能表示的邏輯結構種類少種類多
  • 不能說某一種存儲結構優于另一種
  • 元素存放順序與存儲空間大小無關
  • 順序和鏈式都能順序存取

3.2 數組的特殊性分析

視角解釋示例
邏輯層線性結構的推廣(一維數組即線性表)矩陣是二維線性結構
物理層順序存儲的典型實現int a[10]連續存儲
操作特性通過下標直接訪問元素(本質是基地址+偏移量計算)a[i] ≡ *(a+i)

第四章 易混淆概念速查表

常見混淆對區分關鍵記憶技巧
順序表 vs 數組順序表強調邏輯關系,數組側重存儲“數組是順序表的具體實現”
有序表 vs 順序表有序是邏輯約束,順序是存儲方式“有序表可以用鏈表實現”
線性表 vs 鏈表線性表是抽象概念,鏈表是具體實現“鏈表是實現線性表的方式”

第五章 知識體系圖譜

以下是補充棧(Stack)和隊列(Queue)后的完整知識圖譜,嚴格區分邏輯結構與存儲結構,并標注實現方式:

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

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

相關文章

73頁PPT | 大數據平臺規劃與數據價值挖掘應用咨詢項目解決方案

推薦摘要&#xff1a;在數字化浪潮中&#xff0c;企業數據量呈幾何級增長&#xff0c;卻常因缺乏科學規劃的大數據平臺&#xff0c;陷入數據孤島、處理效率低下的困境&#xff0c;難以充分挖掘數據價值。特推出大數據平臺規劃與數據價值挖掘應用咨詢項目解決方案&#xff0c;正…

gRPC 與 Protobuf 的深度集成 —— 從服務定義到多語言交互(Go + Java 示例)

在前幾篇文章中&#xff0c;我們已經掌握了 Protobuf 的基礎語法、高級特性和序列化反序列化操作。本篇文章將深入講解 gRPC 與 Protobuf 的集成&#xff0c;重點介紹如何通過 .proto 文件定義服務接口&#xff0c;并在 Go 和 Java 中實現 gRPC 服務與客戶端的完整交互流程。我…

可信計算的基石:TPM技術深度解析與應用實踐

可信計算的基石&#xff1a;TPM技術深度解析與應用實踐 引言&#xff1a;數字世界的"信任之錨" 在數據泄露事件頻發的時代&#xff0c;傳統軟件級安全防護已力不從心。TPM&#xff08;可信平臺模塊&#xff09;作為硬件級安全解決方案&#xff0c;正成為現代計算設…

「ECG信號處理——(18)基于時空特征的心率變異性分析」2025年6月23日

一、HRV概述 心率變異性&#xff08;Heart rate variability ,HRV&#xff09;分析是通過測量分析連續正常R-R間期的時間變化來反映心率的變化程度的&#xff0c;根據計算RR 序列的統計指標&#xff0c;或者是畫出RR間期的直方圖和散點圖來反映HRV的大小情況。下面我們從男性與…

【學習筆記】深入理解Java虛擬機學習筆記——第10章 前端編譯與優化

第10章 前端編譯與優化 10.1 概述 1>前端編譯器&#xff1a;Javac命令。 【.java文件->.class文件】 2>即時編譯器&#xff1a;Hotspot.C1.C2 【.class文件->機器碼】 3>提前編譯器&#xff1a;JDK的Jaotc等【.java->機器碼】 10.2 Javac 編譯器 10.2.1 …

Python 區塊鏈與Web3開發指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 區塊鏈基礎概念 區塊鏈核心特性 python 復制 下載 class Block:def __init__(self, index, timestamp, data, previous_hash):self.index indexself.timestamp timestampself.data datas…

工業智能體調參閉環:從物料感知到智慧工藝的落地路徑

用戶定義目標&#xff1a;智能工藝的起點不是機器&#xff0c;而是人 在智能制造系統中&#xff0c;工藝調優的第一步并非直接依賴AI或自動化設備&#xff0c;而是始于用戶的明確輸入。用戶需要在系統中定義產品的工藝要求&#xff0c;包括目標尺寸與規格&#xff08;如長寬高…

【Linux學習筆記】進程間通信之共享內存

【Linux學習筆記】進程間通信之共享內存 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;Linux學習筆記 文章目錄 【Linux學習筆記】進程間通信之共享內存前言一. system V共享內存1.1 共享內存數據結構1.2 共享內存函數1.3 共享內存實現通信…

郭碧婷闖入女團賽道 與劉忻張予曦蔡詩蕓組成ROLLING SISTERS

近日&#xff0c;郭碧婷與劉忻、張予曦、蔡詩蕓組成的女團ROLLING SISTERS正式官宣&#xff0c;并發布《Rolling Life》《Alpha》兩首單曲&#xff01; 此次幾位姐姐的組合讓大家眼前一亮&#xff0c;尤其是郭碧婷造型顛覆以往。銀灰色挑染短發搭配棱角分明的黑色煙熏妝&#x…

2025再升級:醫療數智立體化體系V2.0架構簡介

在醫療數智立體化體系第一版基礎上,融入量子物理的第一性原理計算、人工智能(AI)、高性能云計算(HPC)和標準化機器人自動化整合成“醫療數智立體化體系2.0”,代表了醫療研發未來的重要發展方向。這個體系的核心在于深度融合物理世界規律、智能計算與自動化執行,為醫療AI…

Day40 訓練和測試的規范寫法

目錄 一、彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中 單通道圖片的規范寫法 彩色圖片的規范寫法 二、展平操作&#xff1a;除第一個維度batchsize外全部展平 圖像任務中的張量形狀 NLP任務中的張量形狀 1. Flatten操作 2. view/reshape操作 總結 三…

Linux 文件 I/O 與標準 I/O 緩沖機制詳解

一、什么是標準 I/O&#xff1f;&#xff08;FILE* 接口&#xff09; 標準 I/O 是 C 標準庫為我們提供的一套高級文件操作接口&#xff0c;核心基于結構體 FILE&#xff0c;常見函數如&#xff1a; fopen() / fclose() fread() / fwrite() fprintf() / fscanf() fflush() /…

C++的前世今生-C++11

C98&#xff08;ISO/IEC 14882:1998&#xff09; C98 是 C 的第一個標準化版本&#xff08;ISO/IEC 14882:1998&#xff09;&#xff0c;它正式確立了 C 的核心語言特性和標準庫。以下是 C98 的主要特性總結&#xff1a; 一、核心語言特性** 模板&#xff08;Templates&…

詞編碼模型怎么進行訓練的,輸出輸入是什么,標簽是什么

詞編碼模型怎么進行訓練的,輸出輸入是什么,標簽是什么 詞編碼模型的訓練本質是通過數據驅動的方式,將離散的文本符號映射為連續的語義向量。 一、訓練機制:從符號到向量的映射邏輯 1. 核心目標 將單詞/子詞(Token)映射為低維向量,使語義相關的詞在向量空間中距離更近…

【Linux指南】文件管理高級操作(復制、移動、查找)

引言 在Linux系統管理中&#xff0c;文件的復制、移動與查找是比基礎操作更進階的核心技能&#xff0c;它們構成了高效管理文件系統的"三駕馬車"。當我們需要備份重要數據、重構目錄結構或在龐大的文件系統中定位目標文件時&#xff0c;cp、mv、find等命令將成為最得…

【棧】-----【小C的記事本】

小C的記事本 題目描述 小C最近學會了 Java 小程序的開發&#xff0c;他很開心&#xff0c;于是想做一個簡單的記事本程序練練手。 他希望他的記事本包含以下功能&#xff1a; append(str)&#xff1a;向記事本插入字符串 str&#xff08;英文字符&#xff09;。delete(k)&am…

技能系統詳解(2)——特效表現

特效會有個EffectManager用于統一管理所有特效&#xff0c;技能特效只是各類特效中的一種 EffectManager需要提供特效的創建&#xff0c;返回被封裝為EffectHandle 每類特效都有各種不同的配置參數&#xff0c;這些配置參數會傳遞給EffectManager用于生成EffectHandler 為支…

12.OpenCV—基礎入門

01讀取圖像 02創建空白圖像 03保存圖像 04更改圖像亮度 05更改圖像對比度 06灰度直方圖均衡 07彩色直方圖均衡 08五種濾波方式 09形態學操作 10仿射變換 11角度縮放仿射變換 12透視變換 13坐標映射 14模板匹配 15多模板匹配 16查找輪廓線 17輪廓線匹配 17繪制…

【Python】Python之什么是生成器?什么是迭代器?

目錄 專欄導讀前言什么是迭代器&#xff08;Iterator&#xff09;&#xff1f;迭代器的定義迭代器協議可迭代對象 vs 迭代器自定義迭代器迭代器的優勢 什么是生成器&#xff08;Generator&#xff09;&#xff1f;生成器的定義生成器函數生成器表達式復雜的生成器示例生成器的狀…

Python中實現簡單爬蟲并處理數據

在當今數據驅動的時代&#xff0c;能夠從互聯網上高效地抓取信息變得越來越重要。Python因其簡潔易學的特性&#xff0c;成為了編寫網絡爬蟲的首選語言之一。接下來&#xff0c;我將介紹如何使用Python來實現一個基礎的網絡爬蟲&#xff0c;并對收集到的數據進行初步處理。 首先…