1. 程式人生 > >資料結構基礎知識總結

資料結構基礎知識總結

一、資料結構的基本概念

1、資料
描述客觀事物的符號,是計算機中可以操作的物件,能被計算機識別,並輸入給計算機處理的符號集合
2、資料元素
是組成資料的有一定意義的基本單位,在計算機中通常作為整體處理,也被稱為記錄
3、資料項
一個數據元素可以有若干個資料項組成。資料項是資料不可分割的最小單位

二、 資料結構

資料結構:相互之間存在一種或者多種特定關係的資料元素的集合
這裡寫圖片描述

三、 演算法

1、演算法
解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,每條指令可表示為一個或多個操作
2、演算法的特性
輸入、輸出、有窮性、確定性、可行性
3、設計演算法的要求


正確性、可讀性、健壯性、時間效率高且空間使用率低、簡單性
時間複雜度
是同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。
電腦科學中,演算法的時間複雜度是一個函式,它定性描述了該演算法的執行時間。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。
一個演算法的優劣主要從演算法的執行時間和所需要佔用的儲存空間兩個方面衡量。
這裡寫圖片描述
總的執行次數:f(n) = n^2+2*n+10;

演算法存在最好、平均和最壞的情況

1、最壞情況:任意輸入規模的最大執行次數(上界)
2、平均情況:在任意輸入規模期望執行次數
3、最好情況:任意輸入規模的最小執行次數,通常最好情況不會出現(下界)

在實際中一般關心的都是演算法最壞的執行情況

一般情況下使用O漸進表示法來計算演算法的時間複雜度

時間複雜度之大O漸進表示法

一個演算法語句總的執行次數是關於問題規模N的某個函式,記為f(N),N稱為問題的規模。語句總的執行次數記為T(N),當N不斷變化時,T(N)也在變化,演算法執行次數的增長速率f(N)的增長速率相同,則有T(N) = O(f(N)),稱為O(f(n))為時間複雜度的O漸進表示法。

空間複雜度


是對一個演算法在執行過程中臨時佔用儲存空間大小的量度,記做S(n)=O(f(n))。比如直接插入排序的時間複雜度是O(n^2),空間複雜度是O(1) 。而一般的遞迴演算法就要有O(n)的空間複雜度了,因為每次遞迴都要儲存返回資訊。
常見演算法的複雜度表示
這裡寫圖片描述