資料結構與演算法基礎
1 資料
1.1 資料項(data item)
是不可分割的最小資料單位,具有原子性,比如一張表的某個資料項
1.2 資料元素(data element)
是資料的基本單位,是資料集合的個體,通常由若干個資料項組成
1.3 資料物件(data object)
是性質相同的資料元素的集合,比如這張表就是一個數據物件
2 資料結構
2.1 線性結構
2.2 非線性結構
一個節點元素可能對應多個直接前驅和多個直接後繼
3 演算法
3.1 概念
演算法是指令的集合,是為解決特定問題二規定的一系列操作
3.2 時間複雜度
執行演算法所需的計算工作量 最壞O(n)、最好Ω (n)
3.3 空間複雜度
執行演算法所需的的記憶體空間
相關推薦
資料結構與演算法基礎-01-二分查詢
二分查詢 注:本題目源自《浙江大學-資料結構》課程,題目要求實現二分查詢演算法。 函式介面定義 Position BinarySearch( List L, ElementType X ); 其中List結構定義如下: typedef int Position; typ
資料結構與演算法--基礎入門概念
資料結構與演算法--基礎入門概念 一: 資料結構 1:資料的層次劃分 1:資料型別 2:資料元素 3:資料物件 4:資料項 5:借圖輔助理解 2:基於資料的資料結構
資料結構與演算法基礎-02-二分查詢-實踐
演算法中查詢演算法和排序演算法可謂是最重要的兩種演算法,是其他高階演算法的基礎。在此係列文章中,將逐一學習和總結這兩種基礎演算法中常見的演算法實現。首先,第一種演算法——二分(折半)查詢的學習和練習。 1、概念 二分查詢,是逐次將查詢範圍折半,縮小搜尋的範圍,直到找到那個需要的結果。
資料結構與演算法基礎
1 資料 1.1 資料項(data item) 是不可分割的最小資料單位,具有原子性,比如一張表的某個資料項 1.2 資料元素(data element) 是資料的基本單位,是資料集合的個體,通常由若
資料結構與演算法基礎(二)之單鏈表的插入與刪除操作
今天主要來講一講單鏈表的插入與刪除操作的步驟和演算法解釋。這是單鏈表最基本的操作但是也是最重要的基礎之一,有些地方還比較容易出錯。下面我就結合原始碼在上面加上註釋來解釋每一步的作用。 **一、單鏈表的插入操作** 1、圖示(截圖來自網易雲課
資料結構與演算法 基礎概述 入門必備!
一、資料的邏輯結構 (1)集合結構 結構中的資料元素之間除了同屬於一個集合的關係外,再無任何其它關係。 (2)線性結構 結構中的資料元素之間存在著一對一的線性關係。 (3)樹形結構 結構中的資料元素之間存在著一對多的層次關
資料結構與演算法基礎(基於python)
用大O法表示執行時間,log都表示log2(以2為底的對數) 所有的演算法都是基於python寫的 一、二分查詢法: 1、輸入:一個有序的元素列表 2、輸出:如果要查詢的元素包含在列表中,二分查詢返回其位置,否則返回NULL. 3、使用
資料結構與演算法基礎知識(1)
文章概述 資料結構的定義與分類 邏輯結構 物理結構 資料結構的定義 資料結構就是關係,是資料元素之間存在的一種或者多種特定關係的集合。 資料結構分為兩類: a. 邏輯結構 b. 物理結構 邏輯結構: 資料物件中資料元素之間的相互關係。
[備戰軟考]資料結構與演算法基礎
: 資料結構與演算法基礎 線性表 1.順序表 順序的儲存結構,元素在記憶體中以順序儲存。記憶體中佔用連續的一個區域。 順序表的刪除 把要刪除的元素後面每個元素向前移動一位 順序表的插入 把要插入的位置後面的(包括自己)所有元素向後移動
資料結構與演算法基礎之指標和陣列
指標和陣列: 指標和一維陣列: 陣列名: 一維陣列名是個指標常量 它的值不能被改變 它存放的是一維數組裡第一個元素的地址 一維陣列名指向的是陣列的下標為0的第一個元素。 下標和指標的關係: 1 a[i]<<==>>*(a+i)&
資料結構與演算法基礎總覽
前言 對於絕大多少程式設計師來說,資料結構與演算法絕對是一門非常重要但又非常難以掌握的學科。最近自己系統學習了一套資料結構與演算法的課程,也開始到Leetcode上刷題了。這裡對課程中講到的一些資料結構與演算法基礎做了一些回顧和總結,從巨集觀上先來了解整個
【演算法】資料結構與演算法基礎總覽(中)——刷Leetcode等演算法題時一些很實用的jdk輔助方法錦集
最近重新學習資料結構與演算法以及刷leetcode演算法題時,發現不少jdk自帶的方法可以提升刷題的效率。這些小技巧不僅僅對刷演算法題帶來便利,對我們平時開發也是很有幫助的。本文以java語言為基礎,記錄了目前已經使用或看到過的一些小技巧,後續在刷題過程
資料結構與演算法之美專欄學習筆記-二叉樹基礎(上)
樹 節點的定義 樹中的元素稱之為節點 高度的定義 節點的高度:節點到葉子節點的最長路徑 樹的高度:跟節點的高度 深度的定義 根節點到這個節點所經歷的邊的個數 層的定義 節點的深度+1 二叉樹 滿二叉樹 除了葉子結點外每個節點都有左右兩個子節點 完全二叉樹 葉子結
資料結構與演算法之美專欄學習筆記-二叉樹基礎(下)
二叉查詢樹 Binary Search Tree 二叉查詢樹的定義 二叉查詢樹又稱二叉搜尋樹。其要求在二叉樹中的任意一個節點,其左子樹中的每個節點的值,都要小於這個節點的值,而右子樹的節點的值都大於這個節點的值。 二叉查詢樹的查詢操作 二叉樹類、節點類以及查詢方法的程式碼實現
noip資料結構與演算法 之 基礎小演算法 4 二維差值維護
noip資料結構與演算法 之 基礎小演算法 4 二維差值維護 二維差值維護問題實際上是對一維差值維護問題的擴充套件,相信來看二維差值維護的各位都已經對一維差值維護問題有足夠的認識了。下面先看一下二維差值維護的問題。 問題描述: 已知一個n*n的矩陣a,有m次操作,每次
基礎資料結構與演算法實現(2)—二叉搜尋樹BST
import java.util.LinkedList; import java.util.Queue; public class BST <E extends Comparable<E>> { private c
資料結構與演算法理論基礎-1
資料結構 早期人們理解的計算機只是數值計算的工具,所以計算機解決問題,是 先從具體問題抽象出一個適當的資料模型, 設計出一個解此數學模型的演算法 編寫程式,得到一個實際的軟體 可現實中,我們更多的不是解決數值計算的問題,而是需要一些更科學有效的手段(比如:表、樹、
基礎資料結構與演算法之非比較排序一:計數排序
要想深入理解一個東西,必須要清楚的知道來龍去脈。知道好在哪裡,不好在哪裡。適用於什麼應用場景。 對於演算法,最基本的效能指標是時間複雜度和空間複雜度。計數排序時間複雜度是O(n+range),計數排序要經過兩個遍歷。由於要申請range個空間,所以空間複雜度是O(ran
基礎面試題之資料結構與演算法
資料結構 資料結構是對實際問題中的資料元素及相互間的聯絡的抽象。一般用線性表來表示常用資料結構,線性表分為順序儲存的順序表和連式儲存的連結串列。 常用資料結構 在學習演算法之前,必須要了解一些常用資料結構的概念。 棧:一種特殊串聯形式的抽象資料型別,可由連結串列或陣列實現,通過連結串列或陣列的
資料結構與演算法分析(一) —— 數學基礎
這段時間,該開始資料結構與演算法分析的學習了。跟以前一樣,學習同時整理成博文是個不錯的學習方式,因此,後面一段時間將對資料結構與演算法分析進行講解學習,希望有興趣的同學一起討論學習。 資料結構,即組織大量資料的方法;演算法分析,即演算法執行時間的估計。很多