資料結構和演算法

2021-10-22 18:53:37 字數 1091 閱讀 2850

著名計算機科學家n.wirth教授提出乙個公式:

演算法+資料結構=程式

演算法有五個重要特性

1.有窮性

2.確定性

3.可行性

4.輸入

5.輸出

要得到乙個高效的演算法,在設計演算法時,就要對演算法的執行時間有乙個客觀的分析。

一般的,把演算法中包含的簡單操作的次數的多少稱為演算法的時間複雜度,它是乙個演算法執行的相對量度。

int

sum(

int a,

int n)

intsum

(int a,

int n)

return s;

//1}

這一串**時間複雜度就是t(n)=3n+4

以下是幾個計算時間複雜度的例子大家應該可以看懂

//矩陣相加

void

matrixxadd

(int a[

][n]

,int b[

][n]

,int c[

][n]

)//4n*n+5n+2

x=x+

1//1

for(i=

1;i<=n;i++

)//n

x=x+

1for

(i=1

;i<=n;i++

)//n*n

for(j=

1;j<=n;j++

)x=x+

1for

(i =

1;i <= n;i++

)//n*(n-1)/2

for(j = i;j <= n;j++

)x = x +

1void

bubble_sort

(int a,

int n)}}

//最壞的情況n(n+1)/2

實際上,一般也沒有必要精確的計算演算法的時間複雜度,只要大致計算數量級就可以了。

t(n)=o(f(n))

給大家推薦一篇文章,對於時間複雜度講述的十分詳細。

時間複雜度

資料結構和演算法

判斷乙個演算法的效率時,函式中的常數和其它次要項常常可以忽略,而更應該關注主項 最高項 的階數。演算法時間複雜度的定義 在進行演算法分析時,語句中的執行次數t n 是關於問題規模n的函式,進而分析t n 隨n的變化情況並確定t n 的數量級。演算法的時間複雜度,也就是演算法的時間量度,記作 t n ...

資料結構和演算法

程式是什麼?好多書上都寫著 程式 資料結構 演算法。可是怎麼去理解呢?好多程式設計人員對資料結構和演算法說不上熟悉,因為在他們所從事的工作中很少用到這些知識點。但並不表示他們不重要。還有一些人是這樣的想法 大公司才會注重這些知識點,小公司可能就不注重了。寫這篇文章之前我也是持這種想法的。但是,此時此...

資料結構和演算法

一 資料結構 1.概念 資料結構就是資料之間的結構關係,或者理解成資料元素之間存在的一種或者多種特定關係的集合,在傳統上資料結構分為邏輯結構與物理結構 1 邏輯結構 只反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後關係,而與他們在計算機中的儲存位置無關,有以下四類 集合結...