數據結構與演算法系列1 什麼是數據結構和演算法

數據結構系列1

啥是數據結構?

數據結構是電腦存儲,組織數據的方式,就是怎麼存儲數據的意思

啥是數據

數據:是描述客觀事物的符號,是電腦中可以操作的對象,是能被電腦識別,並給電腦處理的符號集合

數據元素:是組成數據的,有一定意義的基本單位,在電腦中通常作為整體處理,也被稱為記錄

數據項:一個數據元素可以由若干數據項的組成

數據對象:是性質相同的數據元素的集合,是數據的子集

啥是結構

邏輯結構,物理結構

**

邏輯結構:是指數據對象中數據元素之間的相互關係,包括集合結構,線性結構,圖形結構

**

集合結構:集合結構中的數據元素除了同屬一個集合外,他們之間沒有其他關係

在這裡插入圖片描述

線性結構:線性結構中的數據之間是一對一的關係

在這裡插入圖片描述

圖形結構:圖形結構的數據元素是多對多的關係

在這裡插入圖片描述

樹形結構:樹形結構中的數據之間是一對多的層次關係

在這裡插入圖片描述

物理結構:是指數據的邏輯結構在電腦中的存儲形式。順序存儲和鏈式存儲。

順序存儲:是把數據元素存放在地址連續的存儲單元里。

鏈式存儲:是把數據元素存放在任意的存儲單元里,這組存儲單元可以是連續的,也可以是不連續的。

各位大佬對數據結構的見解

在這裡插入圖片描述

Sartaj Sahni在他的《數據結構、演算法與應用》一書中稱:「數據結構是數據對象,以及存在於該對象的實例合組成實例的數據元素之間的各種聯繫。這些聯繫可以通過定義相關的函數來給出。」他將數據對象(data object)定義為「一個數據對象是實例或值的集合」。

在這裡插入圖片描述

Clifford A.Shaffer在《數據結構與演算法分析》一書中的定義是:「數據結構是 ADT(抽象數據類型Abstract Data Type) 的物理實現。」

在這裡插入圖片描述

大話數據結構:數據結構是相互之間存在一種或多種特定關係的數據元素的集合。

在這裡插入圖片描述

個人:數據結構包括數據對象集以及它們在電腦中的組織方式,即它們的邏輯結構和物理存儲結構,同時還包括與數據對象集相關的操作集,以及實現這些操作的最高效的演算法。拿我們生活中的圖書館藏書舉例,就是把圖書館中的書轉化為一些字元數據存入電腦中,以及對這些數據對象集的操作。如找書,擺放放書等。

什麼是演算法?

還是圖書館的例子,如果一本一本找累死人,要是有個索引,先找哪一類這樣會快很多。如何查找其實就是演算法。

演算法是解決問題步驟的有限集合,通常用某一種電腦語言進行偽碼描述。通常用時間複雜度和空間複雜度來衡量演算法的優劣。

演算法的五大特徵:輸入、輸出、有窮性、確定性、可行性。

輸入:零個或多個輸入。

輸出:一個或多個輸出。

有窮性:有限步驟後在可接受時間內完成。

確定性:每個步驟都有確定含義,無二義性。

可行性:每一步都是可行的。

演算法設計要求:正確性、可讀性、健壯性、時間效率高和存儲低。

正確性:有輸入輸出,無二義性,有正確答案。

可讀性:方便閱讀。

健壯性:輸入不合法能處理

時間效率高和存儲低:時間空間複雜度越低越好。

以上就是數據結構與演算法系列1 什麼是數據結構和演算法,後面我會繼續更新,寫作不易,請各位老鐵點個贊支援一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀

在這裡插入圖片描述