數據結構知識點匯總

1、在數據結構中,隨機訪問是指能夠直接訪問任一元素,而不需要從特定的起始位置開始,也不需要按順序訪問其他元素。這種訪問方式通常不涉及遍歷。例如,數組(array)支持隨機訪問,你可以直接通過索引訪問任意元素,而無需從第一個元素開始一步步遍歷。

2、對于鏈式存儲的理解:可以把每個節點理解為僅存儲兩個元素的數組,第一個元素是這個節點存儲的數據,第二個節點存儲的是下一個節點的數組名,也就是下一個節點的首地址(假設這個數組可以存儲不同的數據類型)。

3、鏈式存儲無法進行隨機訪問的原因就是,每一個節點在計算機內存中的位置信息都保留在前驅節點中,而前驅節點的位置信息又保存在前驅節點的前驅節點中,就這樣連鎖反應到首個節點,所以若要進行訪問只能從第一個節點進行遍歷。

4、算法可以沒有輸入,但至少有一個輸出,用時間復雜度和空間復雜度來衡量一個算法的效率。

5、時間復雜度里的O()是指同階的意思。

6、時間復雜度就是在當問題規模n趨近于無窮大時,誰是高階無窮大。

7、高階無窮大的比較參考為:常對冪指階
在這里插入圖片描述
在這里插入圖片描述
時間復雜度的最終結果會省略低階項和高階項的系數,所以最終的結果一定是以上高階無窮大序列中的某一個。且由于以上的函數單調遞增、無交點,所以當n趨近于0時,他們的高階無窮小順序是反過來的。

8、由于在計算時間復雜度時,是將n處于趨近于無窮大的情況下進行計算,所以算法中的會執行但與n無關的代碼步驟會被視作常數而被忽略掉。且由于最終的結果會忽略低階項,所以都是直接研究最深層的循環的循環次數,一般循環次數都是關于n的一元函數。

9、在某些情況下,計算最深循環次數的條件并不確定,需要討論最好和最壞情況,則需要計算平均循環次數,從而得到一個代表平均次數的n的一元函數。實際使用的都是平均時間復雜度和最壞時間復雜度,最好時間復雜度不會使用。

10、空間復雜度的變化一般都是由n引起的變量大小的改變,例如n決定了數組的大小和結構體大小;或則n決定了函數的嵌套次數,例如遞歸函數的遞歸次數。

11、空間復雜度就是根據n所決定的空間大小的高階無窮大。

12、時間復雜度和空間復雜度的計算就是去找n的一元函數。

13、數據元素和數據項可以分別理解為一個賬戶和這個賬戶的具體信息,在實際的代碼中可理解為結構體和成員變量。

14、數據結構就是存在特定關系的數據元素的集合,這個概念包含了數據元素以及它們之間的關系,在具體的數據結構中,每個節點的數據域就是數據元素。

15、數據對象就是具有相同性質的數據元素的集合,可理解為由同一個結構體或者類產生的實例對象集合。數據對象這個概念不包含數據元素之間的關系,所以這個概念僅指一個數據元素集合,數據元素之間可以不存在關系。

16、邏輯結構使用不同的存儲結構會影響存儲空間分配的方便程度、影響對數據運算的速度。

17、數據的運算是通過算法來實現的。

18、抽象數據類型ADT就是邏輯結構和數據的運算這兩點的總和,一般都是先定義ADT,也就是邏輯結構和在此之上的運算,再使用具體的存儲結構去實現他。

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

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

相關文章

ubuntu中上傳項目至GitHub倉庫教程

一、到github官網注冊用戶 1.注冊用戶 地址:https://github.com/ 2.安裝Git 打開終端,輸入指令git,檢查是否已安裝Git 如果沒有安裝就輸入指令 sudo apt-get install git 二、上傳項目到github 1.創建項目倉庫 進入github主頁,點擊號…

C#在 .NET 9.0 中啟用二進制序列化:配置、風險與替代方案

在 .NET 9.0 中啟用二進制序列化:配置、風險與替代方案 引言一、啟用二進制序列化的步驟二、實現序列化與反序列化三、安全風險與緩解措施四、推薦替代方案五、總結 引言 在 .NET 生態中,二進制序列化(Binary Serialization)曾是…

如何解決鴻蒙應用閃退問題

如何解決鴻蒙應用閃退問題 本文是一份面向 ArkTS/JavaScript/C 多語言開發者的綜合性排查與優化手冊,覆蓋 HarmonyOS/OpenHarmony 5.x 時代 常見閃退根因、診斷流程、調試技巧、CI 監控及線上防護方案,力爭幫你把 Crash 數量降到 …

【Java高階面經:微服務篇】4.大促生存法則:微服務降級實戰與高可用架構設計

一、降級決策的核心邏輯:資源博弈下的生存選擇 1.1 大促場景的資源極限挑戰 在電商大促等極端流量場景下,系統面臨的資源瓶頸呈現指數級增長: 流量特征: 峰值QPS可達日常的50倍以上(如某電商大促下單QPS從1萬突增至50萬)流量毛刺持續時間短(通常2-4小時),但對系統穩…

關于我對傳統系統機構向大模型架構演進的認知

最近這段時間在研究大模型,不可避免會接觸到架構。從我職業經歷一路走來,自然會拿著現有模型的架構和我之前接觸到的系統架構進行對比。今天就大模型的架構和傳統系統架構進行一下梳理,說一說我的見解。 在我眼里,傳統系統架構如…

圖片識別(TransFormerCNNMLP)

目錄 一、Transformer (一)ViT:Transformer 引入計算機視覺的里程碑 (二)Swin-Transformer:借鑒卷積改進 ViT (三)VAN:使用卷積模仿 ViT (四)…

性能測試、壓力測試、負載測試如何區分

一、前言:為何區分三者如此重要? “你們做過壓力測試嗎?”“系統性能測試做得怎么樣?”“負載測試的數據能分享一下嗎?” 在很多軟件開發與測試團隊的日常溝通中,“性能測試”“壓力測試”“負載測試”這…

工業路由器WiFi6+5G的作用與使用指南,和普通路由器對比

工業路由器的技術優勢 在現代工業環境中,網絡連接的可靠性與效率直接影響生產效率和數據處理能力。WiFi 6(即802.11ax)和5G技術的結合,為工業路由器注入了強大的性能,使其成為智能制造、物聯網和邊緣計算的理想選擇。…

紫光同創FPGA實現AD9238數據采集轉UDP網絡傳輸,分享PDS工程源碼和技術支持和QT上位機

目錄 1、前言工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目紫光同創FPGA相關方案推薦我這里已有的以太網方案本方案在Xilinx系列FPGA的應用方案 3、設計思路框架工程設計原理框圖AD輸入源AD9238數據采集AD9238數據緩存控制模塊…

如何修改服務器管理員賬號名和密碼(1)

命令解析sudo useradd -m -s /bin/bash 新用戶名 1. sudo 作用:以超級用戶(root)權限執行命令 為什么需要:創建用戶需要修改系統文件(/etc/passwd, /etc/shadow等),普通用戶沒有這個權限 替代方案:如果已經是root用戶&#xff0…

Linux shell 正則表達式高效使用

Linux正則表達式高效使用教程 正則表達式是Linux命令行中強大的文本處理工具,能夠極大提高搜索和匹配效率。下面為新手提供一個簡單教程,介紹如何在grep和find命令中使用正則表達式。 使用建議:使用grep時要加-E選項使其支持擴展正則表達式&…

你通俗易懂的理解——線程、多線程與線程池

一:異常處理 1.1 異常概述 (1)場景 (2)定義 (3)異常拋出機制 Java把不同的異常用不同的類表示 (4)如何對待異常 1.2 常見異常類 (1)Throwable &am…

w~自動駕駛~合集13

我自己的原文哦~ https://blog.51cto.com/whaosoft/13933252 # 小米智能駕駛技術的一些猜測 來蹭一下小米汽車智能駕駛的熱度,昨晚聽了雷總小米汽車的發布,心潮澎湃尋思下單一輛奈何現實不允許hhh。 言歸正傳吧, 本來是想主要聽一下小米…

AI 面試幫 開發日志

項目源碼 https://cnb.cool/szu/TravelBest/Platform/-/tree/main 文章目錄 架構微服務網絡通信延遲 中間件redisMongoDB 架構 微服務 優點: 模塊間解耦、職責清晰,獨立部署與擴展,單個服務故障不會影響整個系統,便于持續交付與…

論文閱讀(四):Agglomerative Transformer for Human-Object Interaction Detection

論文來源:ICCV(2023) 項目地址:https://github.com/six6607/AGER.git 1.研究背景 人機交互(HOI)檢測需要同時定位人與物體對并識別其交互關系,核心挑戰在于區分相似交互的細微視覺差異&#…

部署java項目

1.編寫shell腳本部署服務 restart.sh #!/bin/bash # # start the user program # echo "-------------------- start jk service --------------------" LOG_DIR"/home/joy/usr/app/ers-log" LOG_FILE"$LOG_DIR/log_$(date "%Y%m%d").txt&…

第18天-NumPy + Pandas + Matplotlib多維度直方圖

示例1:帶樣式的柱狀圖 python 復制 下載 import numpy as np import pandas as pd import matplotlib.pyplot as plt# 生成數據 df = pd.DataFrame(np.random.randint(10, 100, size=(8, 4)),columns=[Spring, Summer, Autumn, Winter],index=[2015, 2016, 2017, 2018, 20…

關于 Web 安全實踐:4. 文件上傳功能的風險分析與防護

定義:文件上傳風險點是指應用程序允許用戶上傳文件,但沒有嚴格校驗上傳文件的類型、內容、路徑等屬性,導致攻擊者可以上傳并執行惡意代碼。 繞過方式: 前端繞過 1. 前端限制的原理 前端限制上傳文件類型的常見方式有三種&#…

升級SpringBoot2到3導致的WebServices升級

背景 WebServices 是基于開放標準(XML、SOAP、HTTP 等)的 Web 應用程序,它們與其他 Web 應 用程序交互以交換數據。WebServices 可以將您現有的應用程序轉換為 Web 應用程序。 老代碼中有一個19年前的包,由于漏洞原因,…

Vue3中插槽, pinia的安裝和使用(超詳細教程)

1. 插槽 插槽是指, 將一個組件的代碼片段, 引入到另一個組件。 1.1 匿名插槽 通過簡單的案例來學習匿名插槽,案例說明,在父組件App.vue中導入了子組件Son1.vue,父組件引用子組件的位置添加了一個片段,比如h2標簽,然…