少年阿賓

          那些青春的歲月

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          設(shè)x[1…n],y[1…n]為兩個(gè)數(shù)組,每個(gè)包含n個(gè)已知的排好序的數(shù),給出一個(gè)數(shù)組x和y中所有2n個(gè)元素的中位數(shù),要求時(shí)間復(fù)雜度為O(lgN)

          這是算法導(dǎo)論上面的一道題目:

          public class FindMedianTwoSortedArray {
          public static int median(int[] arr1, int l1, int h1, int[] arr2, int l2, int h2)
              {
          System.out.println("-----------");
                  int mid1 = (h1 + l1 ) / 2;
                  int mid2 = (h2 + l2 ) / 2;
                  if (h1 - l1 == 1)
                      return (Math.max(arr1[l1] , arr2[l2]) + Math.min(arr1[h1] , arr2[h2]))/2;
                  else if (arr1[mid1] > arr2[mid2])
                      return median(arr1, l1, mid1 , arr2, mid2 , h2);    
                  else
                      return median(arr1, mid1 , h1, arr2, l2 , mid2 );    
              }     
          public static void main(String[] args) {
          int[] a = new int[]{0,1,2};
          int[] b = new int[]{1,2,3};
          int result = median(a, 0, a.length-1,b,0,b.length-1);
          System.out.println(result);
          }
          }


          posted on 2014-11-17 21:47 abin 閱讀(457) 評(píng)論(0)  編輯  收藏 所屬分類: algorithm
          主站蜘蛛池模板: 洛隆县| 河西区| 红安县| 五台县| 清丰县| 乐昌市| 锡林郭勒盟| 张北县| 南岸区| 青冈县| 永丰县| 册亨县| 乌鲁木齐市| 嘉定区| 永兴县| 东莞市| 高安市| 五河县| 万安县| 苍南县| 兴安盟| 孝义市| 鸡泽县| 治多县| 信宜市| 安吉县| 固原市| 泰安市| 乌审旗| 潼关县| 莱西市| 楚雄市| 突泉县| 普格县| 元江| 临沭县| 汉川市| 通海县| 高清| 鹿泉市| 漳浦县|