2012-10-05 24 views
0

我發現我以前解釋過這個問題的方法錯誤的效率,所以這裏又來了:如何分析這種算法部分2

FUNCTION SEEK(A,X) 
1. FOUND = FALSE 
2. K = 1 
3. WHILE (NOT FOUND) AND (K < N) 
    a. IF (A[K] = X THEN 
     1. FOUND = TRUE 
    b. ELSE 
     1. K = K + 1 
4. RETURN 

分析算法(僞),我可以算完成所需的步驟數,並分析其在θ符號中的效率,Θ(n)是一種線性算法。好。

下面的代碼依賴於循環內部的內部公式來完成,處理是代碼中沒有變量N,因此該算法的效率將始終如一,因爲我們正在分配值1指A &乙變量:

1. A = 1 
2. B = 1 
3. UNTIL (B > 100) 
    a. B = 2A - 2 
    b. A = A + 3 

現在我相信這個算法在固定時間內進行,始終。但是,我怎樣才能使用代數爲了找出完成需要多少步驟?

回答

2

是的第二部分是在O(1)時間運行。你需要證明的唯一論據是每次它將迭代一定次數。代數A每次增長3,所以B每次增加6。它將執行大約100/6次。