資料結構和演算法分析

2021-07-24 18:08:49 字數 1140 閱讀 8063

1.1本書討論的內容

1.2數學知識的複習

1.3遞迴簡論

了解程式在適當輸入和巨大

輸入時的差別,明白優化代

碼採取適當資料結構的重要

指數、對數、級數、模運

算、歸納法反證法證明

指在函式的定義中使用

函式自身的方法,還較常

用於描述以自相似方法

重複事物的過程。也可

以理解為自我複製的過程。

在數學上,費波那契數列是以遞迴的方法來定義:

f_=0}

f_=1}

f_=f_+f_}(n≧2)

經過適當的分析,可以知道這個問題是屬於斐波那契數列,可以用遞迴的思想解決。所謂遞迴演算法,就是一種直接或間接地呼叫原演算法本身的一種演算法。

在設計遞迴演算法時要注意以下幾點:

* 每個遞迴演算法都必須有乙個非遞迴定義的初始值,作為遞迴結束標誌,或遞迴結束的出口。

* 在設計遞迴演算法時,要解決的問題須具有遞迴性。

* 雖然採用遞迴演算法解決問題,特別是一些複雜問題時非常方便且容易實現,但是遞迴演算法的執行效率較低,時間和空間複雜度都很高,因此對於一些對時間和空間複雜度要求較高的程式,建議使用非遞迴演算法設計。

運用遞迴設計的本題求解程式如下所示:

#include 

int f(int n)

int main()

for(i=0;iprintf("%d\n",f(a[i]));

}return

0;}

可以發現當輸入的書稍微大一點是便會出現「tle」,可以改用迴圈的方法設計另一種程式。

可以改用迴圈的方法設計另一種程式。

#include 

int f(int n)

else

for(i=1;ireturn result;

}int main()

for(i=0;iprintf("%d\n",f(a[i]));

}return

0;}

結果如下所示:

2.1 數學基礎

2.2 模型

2.3 要分析的問題

2.4 執行時間分析

資料結構 演算法和演算法分析

一 演算法的基本概念 1.什麼是演算法 演算法 演算法是對特定問題的求解步驟,是指令的有限序列。演算法的特徵 1 演算法有0或多個輸入 2 演算法至少有乙個輸出 3 演算法的每一條指令都可以執行 4 演算法的每一條指令都有確切的定義,沒有二義。5 演算法必須總能在執行有限步以後終止。2.演算法的描述...

資料結構(2) 演算法和演算法分析

資料結構與演算法之間存在著本質聯絡。演算法的定義及特性 演算法是為了解決某類為而規定的乙個有限長的操作序列。乙個演算法必須滿足一下五個重要特性。演算法的時間複雜度 一般情況下,演算法中基本語句重複執行的次數是問題規模n的某個函式f n 演算法的時間量度記作t n o f n 它表示雖問題規模n的增大...

資料結構與演算法分析 之 資料結構和演算法概述

官方解釋 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。大白話 資料結構就是把資料元素按照一定的關係組織起來的集合,用來組織和儲存資料 傳統上,我們可以把資料結構分為邏輯結構和物理結構兩大類。邏輯結構分類 邏輯結構是從具體問題中抽象出來的模型,是抽...