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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 13,059评论 0 33
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,521评论 2 36
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,365评论 0 5
  • 他小跑进办公室,慌忙着脱掉鞋子和袜子,扳起自己的腿,使劲挠着自己的右脚。忙活了一阵之后,他觉得舒服多了。 怎么就有...
    怪谈馆长阅读 527评论 0 0
  • 每到月头月尾都会无缘无故的睡眠质量不好,这究竟是为了啥⊙∀⊙?是不是将自己忙起来累了有利于睡眠,还是老了更年期了
    陈语诺燕阅读 111评论 0 0

友情链接更多精彩内容