減治法演算法設計

2021-06-08 13:48:08 字數 625 閱讀 8508

首先要申明的是減治法思想並不等同於分治法思想,減治法技術利用乙個問題給定例項的解和同樣問題較小例項的解之間的某種關係。一旦建立了這種關係,就可以從頂至下(遞迴),或者從底之上(迭代)地來運用該關係。減治法有3種主要的變種:

1 減去乙個常量

2 減去乙個常量因子,大多數問題中常量因子為2

3 減去的規模可變

對於第一種情況,舉其例。

要求f(n)的解,只需求f(n-1)的解,且f(n)與f(n-1)規模相差常量1。當然並不是所以常量都等於1,也可以為2,這個取決於實際問題。

對於第二種情況,舉其例。

對於第三種情況,乙個很好的例子就是利用歐幾里得演算法計算最大公約數,歐幾里得演算法是基於以下公式:

每一次遞迴,m的減少的規模是可變的。

減治法演算法思想的應用

1  插入排序,shell排序

2  深度優先查詢,廣度優先查詢

3  拓撲排序

4  生成組合物件演算法

資料結構與演算法(5)減治法

減治法 reduceandconquermethod 在將原問題分解為若干個子問題後,利用了原問題的解與子問題的解之間的關係,這種關係通常表現為 1 原問題的解只存在於其中乙個較小規模的子問題中 2 原問題的解與其中乙個較小規模的解之間存在某種對應關係。由於原問題的解與較小規模的子問題的解之間存在這...

分治 減治 變治

a.分治法 divide and conquer 演算法設計思想 1.分解 把問題遞迴分解為兩個以上的子問題 子問題 與原問題性質相同,規模較小 2.求解 求解子問題 不再分解 3.合併 合併子問題的解,得到原問題的解 1.合併排序 2.快速排序 b.減治法 decrease and conquer...

減治法之插入排序

插入排序的基本思想是 直接對n個數進行排序很困難,但如果已經有乙個有序的資料序列,要求在這個序列裡插入乙個數,並要求插入之後仍然有序,那麼這個時候就要用到插入排序法。插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,這種思想就是減一法的集中體現,當然...