資料結構與演算法分析 二 演算法分析(執行時間計算)

2021-10-10 08:46:41 字數 603 閱讀 6376

大o執行時間是上界

●for迴圈:

for迴圈的執行時間是for迴圈內語句的執行時間乘以迭代次數

●巢狀的for迴圈:

從裡向外分析

●順序語句:

各個語句的執行時間求和

●if/else語句

if()

s1else

s2

不超過判斷+s1和s2執行時間長者的總的執行時間

●情況一:實質上是for迴圈,所以為o(n)

int

fun(

int n)

●情況二:難以轉為迴圈結構

int

fun(

int x)

假設執行時間為t(n),則t(n) = t(n - 1) + t(n - 2) + 2,而fib(n) = fib(n - 1) + fib(n - 2),fib以指數速度增長,所以t(n)也以指數增長,這是最壞的情況。因為該程式做了大量的多餘工作。

如果乙個演算法以常數時間將問題的大小削減為其一部分(通常為1/2),那麼該演算法就是o(logn)。如二分查詢

資料結構與演算法分析

資料結構與演算法分析可以稱得上是程式設計師必須修煉的內功心法。資料的儲存結構 資料元素在計算機中的儲存方式 資料的操作集合 對一種資料型別的資料所有操作,例如對資料的增刪改查等等!演算法分析主要分析 下面是一些常用資料結構 一 線性表 1.陣列實現 2.鍊錶 二 棧與佇列 三 樹與二叉樹 1.樹2....

資料結構與演算法分析

資料結構 大量資料的組織方法 演算法分析 演算法執行時間的估算。涉及到計算效率。設想,如果能把時間限制從16年減至不到1秒,不很神奇嗎?在很多問題中,乙個重要的觀念是 寫出乙個可以工作的程式並不夠。如果這個程式在巨大的資料集上執行,執行時間就成了重要的 問題。演算法,是為求解乙個問題需要遵循的 被清...

資料結構 演算法分析

1 冒泡法 冒泡法大家都較熟悉。其原理為從a 0 開始,依次將其和後面的元素比較,若a 0 a i 則交換它們,一直比較到a n 同理對a 1 a 2 a n 1 處理,即完成排序。voidbubble int a,intn 定義兩個引數 陣列首位址與陣列大小 冒泡法原理簡單,但其缺點是交換次數多,...