遞迴式描述分治演算法執行時間的簡單描述

2021-08-28 11:04:27 字數 591 閱讀 1779

分解:將原問題分解成若干個規模更小的子問題

解決:當子問題小到一定程度時,通常是當子問題可以在常量時間內得到解決, 此時成為遞迴觸底, 那麼此時子問題可以很快得到解決

合併:解決子問題之後, 最重要的乙個操作就是將多個子問題合併成原問題的解

通過上述的簡單思想,可以認為,乙個大問題可以通過分解成多個更小的子問題,然後解決乙個個小的子問題, 最後如果能合併成原問題的解,那麼這個問題可以用分治的思想來解決

首先判斷原問題是否可以分解成多個規模更小的相同的問題, 假設原問題規模為n

如果可以分解, 則計算每個子問題相對於原問題的規模b,並記錄乙個問題分解成子問題的個數a,

但是子問題的解不會完全和原問題的解法相同, 這個步驟稱為合併, 即當遞迴觸底時, 進行回公升的時候會進行合併操作, 這個操作一般和原問題的解法是不同的, 假設這一步的時間復度是θ(n)

則可以簡單書寫遞迴式如下:

n = 1時:t(n) = θ(1)

其他情況:t(n) = at(n/b) + θ(n)+θ(1), 即解決子問題的時間 + 合併的時間 + 分解的時間

php程式執行時間 php計算程式的執行時間

首先我們分析一下原理,要想得到程式執行時間,那麼可以在程式最開始執行的時候定義乙個變數記下當前時間,然後等我們程式執行完之後再記錄一下當前的時間,兩者相差就是該程式執行花費的時間了。這裡介紹一下 microtime 這個函式,microtime 用的不多,但是不能不知道這個函式,它是返回當前 uni...

Oracle JOB常見的執行時間

oracle job常見的執行時間 1 每分鐘執行 trunc sysdate,mi 1 24 60 2 每天定時執行 例如 每天凌晨0點執行 trunc sysdate 1 每天凌晨1點執行 trunc sysdate 1 1 24 每天早上8點30分執行 trunc sysdate 1 8 60...

SQLSERVER語句的執行時間

在sql語句調優的時候,大部分都會檢視語句執行時間,究竟sqlserver顯示出來的統計結果是什麼意思?下面看一下例子 比較簡單的語句 1 setstatistics time on 2use pratice 3 go4select from dbo orders 結果 1 2 cpu 時間 0 毫...