數(shù)據(jù)之間的相互關系稱為邏輯結構。通常分為四類基本結構:
1)集合 結構中的數(shù)據(jù)元素除了同屬于一種類型外,別無其它關系。
2)線性結構 結構中的數(shù)據(jù)元素之間存在一對一的關系。
3)樹型結構 結構中的數(shù)據(jù)元素之間存在一對多的關系。
4)圖狀結構或網(wǎng)狀結構 結構中的數(shù)據(jù)元素之間存在多對多的關系。
數(shù)據(jù)結構在計算機中有兩種不同的存儲方法:
1)順序存儲結構:用數(shù)據(jù)元素在存儲器中的相對位置來表示數(shù)據(jù)元素之間的邏輯關系。
2)鏈式存儲結構:在每一個數(shù)據(jù)元素中增加一個存放地址的指針,用此指針來表示數(shù)據(jù)元素之間的邏輯關系。
時間復雜度
一個算法花費的時間與算法中語句的執(zhí)行次數(shù)成正比例,哪個算法中語句執(zhí)行次數(shù)多,它花費時間就多。一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度。記為T(n)
在剛才提到的時間頻度中,n稱為問題的規(guī)模,當n不斷變化時,時間頻度T(n)也會不斷變化。但有時我們想知道它變化時呈現(xiàn)什么規(guī)律。為此,我們引入時間復雜度概念。
常見的算法的時間復雜度之間的關系為:
O(1)<O(logn)<O(n)<O(nlog n)<O(n2)<O(2n)<O(n!)<O(nn)