大話資料結構讀書筆記系列(二)演算法

2021-07-10 19:13:18 字數 1570 閱讀 3593



演算法:

演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。

演算法具有五個基本特性

:輸入、輸出、有窮性、確定性和可行性。

演算法設計的要求:

應該具有正確性、可讀性、健壯性、高效率和低儲存量的特徵。

2.7.1

事後統計方法:

這種方法主要是通過設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低。(

有缺陷)

2.7.2事前分析估算方法:

在計算機程式編制前,依據統計方法對演算法進行估算。

拋開這些與計算機硬體、軟體有關的因素,乙個程式的執行時間,依賴於演算法的好壞和問題的輸入規模。

所謂問題輸入規模是指輸入量的多少。

某個演算法,隨著n

的增大,它會越來越優於另一演算法,或者越來越差於另一演算法。

這其實就是事前估算方法的理論依據,通過演算法時間複雜度來估算演算法時間效率。

在進行演算法分析時,語句總的執行次數t(n)

是關於問題規模

n的函式,進而分析

t(n)隨n

的變化情況並確定

t(n)

的數量級。演算法的時間複雜度,也就是演算法的時間量度,記作:

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

。它表示隨問題規模

n的增大,演算法執行時間的增長率和

f(n)

的增長率相同,稱作演算法的漸近時間複雜度,簡稱為時間複雜度。其中

f(n)

是問題規模

n的某個函式。

2.9.2推導大

o階方法

1.用常數

1取代執行時間中的所有加法常數。

2.在修改後的執行次數函式中,只保留最高端項。

3.如果最高端項存在且不是

1,則去除與這個項相乘的常數。得到的結果就是大

o階。

我們要分析演算法的複雜度,關鍵就是要分析迴圈結構的運**況。

常見的時間複雜度如表2-10-1

所示。

常用的時間複雜度所耗費的時間從小到大依次是:

演算法的空間複雜度通過計算演算法所需的儲存空間實現,演算法空間複雜度的計算公式記作:s(n)=o(f(n))

,其中,

n為問題的規模,

f(n)

為語句關於

n所佔儲存空間的函式。

大話資料結構讀書筆記

第一章 資料結構的定義 資料就夠是相互直接存在一種或多種特定關係的資料元素的集合 邏輯結構 集合結構 線性結構 樹形結構 圖形結構 第二章 演算法 1 演算法的特性 輸入 輸出 有窮性 確定性和可行性 2 演算法事假複雜度定義 在進行演算法分析時,語句總的次數t n 第三章1 線性表 定義 零個或多...

大話資料結構 讀書筆記

是相互之間存在一種或多種特定關係的資料元素的集合。說白了就是資料的集合 但是集合裡面的資料之間存在特地的關係 這翻譯得好像沒說一樣 是指資料元素之間的相互關係 指資料的邏輯結構在計算機儲存形式 鏈式儲存結構 是把資料元素存放在任意的儲存單元 這組儲存單元可以是連續的 也可以是不連續的 資料型別指的是...

讀書筆記 大話資料結構 1

對於電腦科學,資料結構的重要性不言而喻。它對於乙個程式設計師的功力的提高起著關鍵的作用。勿在浮沙築高台,想要成為一名合格的hacker。基礎理論決定乙個程式設計師思維的深度。介於此,決定認真學習資料結構,找到比較基礎易懂的大話資料結構來開始我的學習之旅。資料結構 相互之間存在一種或多種特定關係的資料...