少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(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
          主站蜘蛛池模板: 吕梁市| 衡阳县| 英超| 乐清市| 贵南县| 日土县| 扬中市| 河东区| 土默特右旗| 三穗县| 九江市| 保定市| 利津县| 桂阳县| 昌吉市| 阜阳市| 平湖市| 龙口市| 满洲里市| 繁昌县| 商河县| 晋江市| 禄劝| 嘉义县| 淅川县| 鄢陵县| 巴彦县| 错那县| 凭祥市| 阳信县| 镇平县| 剑川县| 政和县| 丰顺县| 化隆| 尚志市| 青浦区| 三亚市| 武功县| 旬邑县| 澄城县|