大話數據結構筆記————數據結構與算法
第一章:緒論
數據:是描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別,並輸入給計算機處理的符號集合。
數據元素:是組合數據的、有一定意義的基本單位,在計算機中通常作為整體處理。
數據項:一個數據元素可以由若幹個數據項組成,是數據不可分割的最小單位。
數據元對象:是性質相同的數據元素的集合,是數據的子集。
數據結構:是相互之間存在一種或多種特定關系的數據元素的集合。
第二章:算法
算法:是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示一個或多個操作。
算法的特性:(0或多個)輸入、(至少1個)輸出、有窮性和可行性。
算法的設計要求:正確性、可讀性、健壯性、時間效率高和存儲量低。
算法時間復雜度:O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
算法原地工作:算法執行時所需的輔助空間相對於輸入數據量而言是個常量。
大話數據結構筆記————數據結構與算法
相關推薦
《大數據日知錄:架構與算法》讀書筆記(多圖)
打通 導論 ges wid 技術分享 二次 思維 知識點 很好 第二次讀這本書,這次是精讀,畫了思維導圖。書很好,完整的知識結構和由淺入深的介紹,非常全面以至於知識點都梳理了三天。 作為導論式的總覽,對大數據領域有了個總體的認識,接下來可以更針對性地加強和實踐。 總體上
大話數據結構筆記————數據結構與算法
復雜 子集 復雜度 結構 集合 不可 第一章 可讀性 組合數 第一章:緒論 數據:是描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別,並輸入給計算機處理的符號集合。 數據元素:是組合數據的、有一定意義的基本單位,在計算機中通常作為整體處理。 數據項:一個數據元
數據結構與算法(刺猬書)讀書筆記----目錄
更新 rip javascrip tar 結構 順序 耗時 梳理 讀書筆記 最近在抓底層的語言基礎,以前對數據結構和算法並沒有太大感覺,但越往深處學就越覺得這些基礎真的是要牢牢掌握住。一個簡簡單單的數組,深究起來都有很多學問。所以打算寫個一系列的讀書筆記,好好梳理一下這一塊
數據結構與算法(刺猬書)讀書筆記(1)----數組
split() ring 此外 結果 shift 即使 cnblogs 操作符 main 在JavaScript中,數組其實是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,所以JavaScript的數組本質上是對象。同時這些數字索引在內部會被轉換成為字符串類型,因為J
【 python 學習筆記 -- 數據結構與算法 】冒泡排序 Bubble sort
n) -c 排序算法 都是 大小 是什麽 最大值 我們 pri 推薦一個可視化的網站 【 Visual Algo 】: URL= ‘https://visualgo.net/en/sorting‘ 這個網站給出了各種排序算法的原理和過程,通過動態形式直觀得展現出來。另外還給
【 python 學習筆記 -- 數據結構與算法 】歸並排序 Merge Sort
implement 哪些 但是 orm width bsp 過程 完成 分享 【歸並排序】這裏我們利用遞歸算法不斷地將列表一分為二,base case就是列表中沒有元素或者只剩一個元素,因為此時這個子列表必然是正序的;然後再逐步把兩個排序完成的子列表合並成一個新的正序列表,
【 python 學習筆記 -- 數據結構與算法 】快速排序 Quick Sort
mark 效率 空間 eight png orm 歸並 應該 筆記 【快速排序】: 利用遞歸算法, 首先選擇一個基準值(pivot value),這裏我們選列表的第一個值作為例。這個基準值的作用是協助列表的分割。 這個基準值在正序列表中的正確位置,我們稱之為分割點(
學習Javascript數據結構與算法(第2版)筆記(1)
布爾值 efi prim ray 叠代器 undefined ply 內部 HA 第 1 章 JavaScript簡介 使用 Node.js 搭建 Web 服務器 npm install http-server -g http-server JavaScript 的類型有
學習Javascript數據結構與算法(第2版)筆記(3)
清空 tac math bcd lse += 基本類型 In 所有 第 3 章 1. 棧數據結構 棧是一種遵從後進先出(LIFO)原則的有序集合。新添加的或待刪除的元素都保存在棧的同一端,稱作棧頂,另一端就叫棧底。在棧裏,新元素都靠近棧頂,舊元素都接近棧底。 1.1 棧的操
數據結構與算法學習筆記之如何分析一個排序算法?
編號 height href eight 代碼 [] www. 價值 它的 前言 現在IT這塊找工作,不會幾個算法都不好意思出門,排序算法恰巧是其中最簡單的,我接觸的第一個算法就是它,但是你知道怎麽分析一個排序算法麽?有很多時間復雜度相同的排序算法,在實際編碼中,那又如何
數據結構與算法學習筆記之 適合大規模的數據排序
時間復雜度 規模 數組 輸出 數據規模 tmp nlogn lan 情況 前言 在數據排序的算法中,不同數據規模應當使用合適的排序算法才能達到最好的效果,如小規模的數據排序,可以使用冒泡排序、插入排序,選擇排序,他們的時間復雜度都為O(n2),大規模的數據排序就可以使
數據結構與算法之美專欄學習筆記-排序優化
str 原則 選擇排序 .com 實現一個函數 一個數 原因 通用 並排 選擇合適的排序算法 回顧 選擇排序算法的原則 1)線性排序時間復雜度很低但使用場景特殊,如果要寫一個通用排序函數,不能選擇線性排序。 2)為了兼顧任意規模數據的排序,一般會首選時間復雜度為O(nl
數據結構與算法之美專欄學習筆記-散列表(下)
檢查 速查 刪除 core 筆記 意思 前驅 表示 就是 散列表和鏈表組合使用 LRU緩存淘汰算法 借助散列表,我們可以把LRU緩存淘汰算法的時間復雜度降為O(1)。 一個緩沖cache系統主要包含以下操作 往緩存中添加一個數據; 從緩存中刪除一個數據; 在緩存中查找一個
數據結構與算法之美專欄學習筆記-哈希算法(上)
組裝 algorithm 數量 不同的 轉換 完全 負載 結構 快速 哈希算法的定義和原理 將任意長度的二進制串映射為固定長度的二進制串。 這個映射的規則就是哈希算法,而通過原始數據映射之後得到的二進制串就是哈希值。 設計一個優秀的哈希算法需要滿足: 從哈希值不能反向推導
數據結構與算法之美專欄學習筆記-二叉樹基礎(下)
binary 特性 child 數據大小 del delet 動態擴容 eve 怎麽 二叉查找樹 Binary Search Tree 二叉查找樹的定義 二叉查找樹又稱二叉搜索樹。其要求在二叉樹中的任意一個節點,其左子樹中的每個節點的值,都要小於這個節點的值,而右子樹的
<數據結構與算法分析>讀書筆記--數學知識復習
== 數學 去除 數據 分析 數據結構與算法分析 圖片 記憶 技術 數學知識復習是《數據結構與算法分析》的第一章引論的第二小節,之所以放在後面,是因為我對數學確實有些恐懼感。不過再怎麽恐懼也是要面對的。 一、指數 基本公式: 二、對數 在計算機科學中除非有特別的
<數據結構與算法分析>讀書筆記--運行時間計算
地方 內部 容易 hub www 時間計算 事情 truct 並運行 有幾種方法估計一個程序的運行時間。前面的表是憑經驗得到的(可以參考:<數據結構與算法分析>讀書筆記--要分析的問題) 如果認為兩個程序花費大致相同的時間,要確定哪個程序更快的最好方法很可能將它
數據結構與算法第10周作業——二叉樹的創建和遍歷算法
技術分享 truct order traverse eof 結構 後序遍歷 lib void 一、二叉樹的創建算法(遞歸方式) 二、二叉樹的先序、中序和後序遍歷算法 #include<stdio.h>#include<stdlib.h>typedef
數據結構與算法系列研究四——數組和廣義表
cout stdlib.h idt fcc 地址 space stream emp style 稀疏矩陣的十字鏈表實現和轉置 一、數組和廣義表的定義 數組的定義1:一個 N 維數組是受 N 組線性關系約束的線性表。 二維數組的邏輯結構可形式地描述
數據結構與算法系列研究三——字符串
ext 其他 pty 算法實現 strcmp images troy hide ryu 字符串的研究和KMP算法分析和實現 一、串的定義 串是計算機非數值處理的基本對象。串是一種特殊的線性表,它的每個結點僅由一個字符組成,並且單個元素是無意義的。 1、串(stri