posts - 13, comments - 7, trackbacks - 0, articles - 0

          遞歸思想-divide and conquer

          Posted on 2009-08-09 23:08 eyejava 閱讀(261) 評(píng)論(0)  編輯  收藏

          遞歸的思想是分而治之(divide and conquer),將一個(gè)問(wèn)題域?yàn)镹的問(wèn)題分解(partition)成兩個(gè)獨(dú)立的部分,而每一個(gè)部分又是同樣的問(wèn)題,從而這樣一直分解下去,直到問(wèn)題可求為止。
          如求一個(gè)數(shù)組的最大值(最小值同理):

          非遞歸思想解法:
          public int max(int[] arr) {
                  int max = arr[0];
                  for (int i = 1, len = arr.length; i < len; ++i) {
                      if (arr[i] > max) {
                            max = arr[i];
                      }
                 }
                  return max;
          }



          遞歸思想:
           public class MaxTest {
                  public int max(int[] arr) {
                          return recMax(arr, 0, arr.length-1);
                  }
                  private int recMax(int[] arr, int left, int right) {
                          if (left == right) return arr[left];
                          int m = (left+right)/2;
                          int v1 = recMax(arr, left, m);
                          int v2 = recMax(arr, m+1, right);
                          return (v1>v2)?v1:v2;
                  }
          }
                          


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 英山县| 阿合奇县| 二连浩特市| 正阳县| 江山市| 出国| 苏尼特右旗| 盐城市| 元朗区| 包头市| 屯留县| 新竹县| 格尔木市| 岳池县| 苍梧县| 靖江市| 怀来县| 称多县| 福泉市| 兖州市| 宜阳县| 麦盖提县| 灵宝市| 肃南| 阿坝县| 长子县| 大新县| 民和| 铜山县| 湟中县| 鄂尔多斯市| 如东县| 许昌县| 五华县| 永寿县| 皮山县| 华阴市| 弥渡县| 太白县| 玉林市| 桂平市|