基礎數據結構,總共分為5篇文章,依次來介紹說明,今天介紹第一篇緒論
數據結構-緒論程序 = 數據結構 算法;
一切程序的來源都是數據之間的關系存儲。
1、數據是什麼呢?
數據,通俗的講就是整型123,字符串ABC等數值類型,以及聲音,圖片,視頻等等,最終以二級制數據存儲到磁盤中;數據是計算機操作的對象,所有可輸入的處理符号,且可被計算機識别的對象都成為數據
數據元素:是一個數據的集合,也成為"記錄"
數據項:一個數據元素由若幹個數據項組成
數據對象:性質相同的數據元素的集合
數據關系:相互之間存在的一種或是多種關系的數據元素集合
2、數據之間的關系有哪些?
無關系
一對一關系
一對多關系
多對多關系
3、算法及與數據結構之間的關系?
算法是解決問題求解步驟的描述,一條條的序列指令的步驟集合;
就像,如何炒一盤菜?
那麼算法就可以理解為“菜譜”,那麼數據結構就可以理解為“食材”,有了食材,有了菜譜,才能做出一份“程序”
接下來分别描述一下,數據結構和算法
數據結構數據結構,也就是數據之間的關系,分為結構:邏輯結構和物理結構(也就是如何存儲的)
又叫做物理結構,是指數據元素的邏輯結構在計算機中的存儲形式。
算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,并且每條特定指令都表示一個或多個操作
定義:在進行算法分析時,語句總的執行次數T(n)是關于問題規模n的函數,進而分析T(n)随着n的變化情況并确定T(n)的數量級,算法的時間複雜度,就是算法的時間量度T(n)=O(f(n))
常數階 > 對數階 > 線性階 > nLogn階 > 平方階 > 立方階 > 2^n > N! > 指數階
算法空間複雜度是通過計算算法所需的存儲空間實現,算法空間複雜度的計算公式:S(n) = O(f(n)),其中,n為問題的規模,f(n)為語句關于n所占用的存儲空間的函數
例如:求證1 2 3 4 ... 100?
基本的算法,遍曆1到100個數,進行相加,時間複雜度O(n)
換成高斯算法,時間複雜度O(1)
1 2 3 ... 98 99 100 = a;
100 99 98 ... 3 2 1 = a;
上面兩個表達式相加求證:2a =(100 1)* 100
a =(100 1)* 100 / 2
那麼求,∑i = 1 2 3 … n,得出∑i =(n 1)* n/ 2
就好像上面說的算法,就像炒菜的菜譜(算法),在一定的食材(數據)中,如何做出一份又快又好吃的飯菜;
線性表
樹
圖
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!