<object id="getjk"></object>
<object id="getjk"></object>
    1. <object id="getjk"></object>
    2. <th id="getjk"></th>
      XYcooper
      • 性别: Icon_minigender_1
      • 金库娱乐丨信誉75775

      ▯□☐Lintcode80 Median solution题解◘◊◘

       

      阅读更多
      □☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□
      【题目描述】
      Given a unsorted array with integers, find the median of it.
      A median is the middle number of the array after it is sorted.
      If there are even numbers in the array, return theN/2-th number after sorted.
      给定一个未排序的整数数组,找到其中位数。
      中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。

      【题目链接】
      www.lintcode.com/en/problem/median/

      【题目解析】
      由于这里仅需要找出中位数,即找出数组中前半个长度的较大的数,不需要进行完整的排序,所以可以考虑用快速排序法。快排的核心思想就是以基准为界将原数组划分为左小右大两个部分,用在这十分合适。由于调用一次快排后基准元素的最终位置是知道的,故递归的终止条件即为当基准元素的位置(索引)满足中位数的条件时(左半部分长度为原数组长度一半)即返回最终结果。由于函数原型中左右最小索引并不总是原数组的最小最大,故需要引入相对位置(长度)也作为其中之一的参数。若左半部分长度偏大,则下一次递归排除右半部分,反之则排除左半部分。

      【参考答案】
      www.jiuzhang.com/solutions/median/




      (责任编辑:XYcooper)
      分享到: