SlideShare a Scribd company logo
1 of 33
Download to read offline
Top-down &
 Bottom-up
  郭至軒(KuoE0)
 KuoE0.tw@gmail.com
      KuoE0.ch
Attribution-ShareAlike 3.0 Unported
           (CC BY-SA 3.0)

  http://creativecommons.org/licenses/by-sa/3.0/

              Latest update: Feb 27, 2013
Top-down
將大問題化為小問題,再回溯求解。
Top-down
將大問題化為小問題,再回溯求解。
Top-down
將大問題化為小問題,再回溯求解。
Bottom-up
由已知解決小問題,逐步推移至大問題。
Bottom-up
由已知解決小問題,逐步推移至大問題。
Recursion

利用同樣的方法不斷的細分問題或        近答案。




       易有太極,是生兩儀。兩儀生四象,四象生八卦。《易傳》
Fibonacci Sequence
fib(5)
Fibonacci Sequence
fib(5)


fib(4)        fib(3)
Fibonacci Sequence
fib(5)


fib(4)           fib(3)


fib(3)   fib(2)
Fibonacci Sequence
fib(5)


fib(4)                   fib(3)


fib(3)           fib(2)


fib(2)   fib(1)
Fibonacci Sequence
fib(5)


fib(4)                   fib(3)


fib(3)           fib(2)


fib(2)   fib(1)


fib(1)   fib(0)
Fibonacci Sequence
fib(5)


fib(4)                   fib(3)


fib(3)           fib(2)


fib(2)
 1      fib(1)


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)                   fib(3)


fib(3)
 2              fib(2)


fib(2)
 1      fib(1)
         1


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)                           fib(3)


fib(3)
 2              fib(2)


fib(2)
 1      fib(1)
         1      fib(1)   fib(0)


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)
 3                              fib(3)


fib(3)
 2              fib(2)
                 1


fib(2)
 1      fib(1)
         1      fib(1)
                 1      fib(0)
                         0


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)
 3                              fib(3)


fib(3)
 2              fib(2)
                 1              fib(2)   fib(1)



fib(2)
 1      fib(1)
         1      fib(1)
                 1      fib(0)
                         0


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)
 3                              fib(3)


fib(3)
 2              fib(2)
                 1              fib(2)   fib(1)



fib(2)
 1      fib(1)
         1      fib(1)
                 1      fib(0)
                         0      fib(1)   fib(0)


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)


fib(4)
 3                              fib(3)


fib(3)
 2              fib(2)
                 1              fib(2)
                                 1      fib(1)



fib(2)
 1      fib(1)
         1      fib(1)
                 1      fib(0)
                         0      fib(1)
                                 1      fib(0)
                                         0


fib(1)
 1      fib(0)
         0
Fibonacci Sequence
fib(5)
 5


fib(4)
 3                              fib(3)
                                 2


fib(3)
 2              fib(2)
                 1              fib(2)
                                 1      fib(1)
                                         1



fib(2)
 1      fib(1)
         1      fib(1)
                 1      fib(0)
                         0      fib(1)
                                 1      fib(0)
                                         0


fib(1)
 1      fib(0)
         0
int fib( int x ) {
  if ( x <= 0 )
    return 0;
  if ( x == 1 )
    return 1;
  return fib( x - 1 ) + fib( x - 2 );
}

int main() {
  int ret = fib( 10 );
  return 0;
}
Iteration

不斷的利用已知,持續的求出結果以       近答案。




           道生一,一生二,二生三,三生萬物。《老子》
Fibonacci Sequence

    0



    1
Fibonacci Sequence

    0   1



    1
Fibonacci Sequence

    0   1



    1   2
Fibonacci Sequence

    0   1   3



    1   2
Fibonacci Sequence

    0   1   3



    1   2   5
int main() {
  int f0 = 0, f1 = 1, f2;

    for ( int i = 0; i < 10; ++i ) {
      f2 = f0 + f1;
      f0 = f1, f1 = f2;
    }

    return 0;
}
遞迴只應天上有,凡人應當用迴圈。
Practice Now
 POJ 1664 - 放苹果
reference


• http://www.csie.ntnu.edu.tw/~u91029/
  IterativeRecursive.html
Thank You for Your
    Listening.

More Related Content

More from Chih-Hsuan Kuo

[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism
Chih-Hsuan Kuo
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm
Chih-Hsuan Kuo
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set
Chih-Hsuan Kuo
 

More from Chih-Hsuan Kuo (20)

Ownership System in Rust
Ownership System in RustOwnership System in Rust
Ownership System in Rust
 
在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。
 
Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in Gecko
 
Pocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSPocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OS
 
Necko walkthrough
Necko walkthroughNecko walkthrough
Necko walkthrough
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in Gecko
 
面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!
 
應徵軟體工程師
應徵軟體工程師應徵軟體工程師
應徵軟體工程師
 
面試心得分享
面試心得分享面試心得分享
面試心得分享
 
Windows 真的不好用...
Windows 真的不好用...Windows 真的不好用...
Windows 真的不好用...
 
Python @Wheel Lab
Python @Wheel LabPython @Wheel Lab
Python @Wheel Lab
 
Introduction to VP8
Introduction to VP8Introduction to VP8
Introduction to VP8
 
Python @NCKU CSIE
Python @NCKU CSIEPython @NCKU CSIE
Python @NCKU CSIE
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set
 
[ACM-ICPC] Traversal
[ACM-ICPC] Traversal[ACM-ICPC] Traversal
[ACM-ICPC] Traversal
 
[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245
 
[ACM-ICPC] Sort
[ACM-ICPC] Sort[ACM-ICPC] Sort
[ACM-ICPC] Sort
 

Recently uploaded

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 

Recently uploaded (6)

啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 

[ACM-ICPC] Top-down & Bottom-up