由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 变相的merge sort
相关主题
external sorting的一个问题re: 面试归来,上面经回馈各位战友
一个小公司面经求一下这题解法。
BB NON CS onsite面经question about big data
external sorting 的问题问一道题目。。
A的电面挂了,防不胜防啊请教一个面试算法题
贡献1个A家3面的面经,被老印坑了一个特别的inplace merge two sorted arrays
问一个题目merge intervals请教bloomberg 问题, 有关sorting
G面试题求解anybody remember this question?? (about sorting)
相关话题的讨论汇总
话题: merge话题: 抛物线话题: 排序话题: given话题: value
进入JobHunting版参与讨论
1 (共1页)
c*********t
发帖数: 2921
1
Given
抛物线:y = ax^2 + bx + c (a≠0)
给了一些y的值,这些y值(y_1, y_2,..., y_n)是在x=x_1, x_2, x_3, ....., x_n 对
应的y.
x_1 of x's are unknown.
问: 如何对y排序?
Thanks
H*M
发帖数: 1268
2
先求出拐点(倒数为0),assume a>0
然后拐点左边的是倒着排序好的,右边是排序好的
再merge一下,不过得有点trick,一个从头,一个从尾。

value

【在 c*********t 的大作中提到】
: Given
: 抛物线:y = ax^2 + bx + c (a≠0)
: 给了一些y的值,这些y值(y_1, y_2,..., y_n)是在x=x_1, x_2, x_3, ....., x_n 对
: 应的y.
: x_1: of x's are unknown.
: 问: 如何对y排序?
: Thanks

c*********t
发帖数: 2921
3
How to find 拐点 efficiently? In O(n) or O(logn)?
Another thing is that we do now know whether a>0 or not in advance.
So wee need to determine the sign of a.

【在 H*M 的大作中提到】
: 先求出拐点(倒数为0),assume a>0
: 然后拐点左边的是倒着排序好的,右边是排序好的
: 再merge一下,不过得有点trick,一个从头,一个从尾。
:
: value

g*******y
发帖数: 1930
4
O(1)...
就是算抛物线的对称轴吧

【在 c*********t 的大作中提到】
: How to find 拐点 efficiently? In O(n) or O(logn)?
: Another thing is that we do now know whether a>0 or not in advance.
: So wee need to determine the sign of a.

H*M
发帖数: 1268
5
拐点不就是可以手算得吗
或者一个式子就行了
不知道a>0 <0也没关系
算出拐点之后,稍微多找两个点测下就知道了,因为左边和右边是分别单调的

【在 c*********t 的大作中提到】
: How to find 拐点 efficiently? In O(n) or O(logn)?
: Another thing is that we do now know whether a>0 or not in advance.
: So wee need to determine the sign of a.

k***e
发帖数: 556
6
怎么不告诉完全的答案呢 :)
三点就可以确定二次曲线的方程
你有n个点 所以。。。

【在 g*******y 的大作中提到】
: O(1)...
: 就是算抛物线的对称轴吧

b***e
发帖数: 1419
7
我对你的景仰, 有如滔滔江水, 绵绵不绝.

【在 k***e 的大作中提到】
: 怎么不告诉完全的答案呢 :)
: 三点就可以确定二次曲线的方程
: 你有n个点 所以。。。

b***e
发帖数: 1419
8
这个直接从两头merge不就行了吗. 你不是已经知道是变相的merge sort了吗?

value

【在 c*********t 的大作中提到】
: Given
: 抛物线:y = ax^2 + bx + c (a≠0)
: 给了一些y的值,这些y值(y_1, y_2,..., y_n)是在x=x_1, x_2, x_3, ....., x_n 对
: 应的y.
: x_1: of x's are unknown.
: 问: 如何对y排序?
: Thanks

k***e
发帖数: 556
9
为啥讽刺俺? :《

【在 b***e 的大作中提到】
: 我对你的景仰, 有如滔滔江水, 绵绵不绝.
l****h
发帖数: 272
10
这倒题目主要是要你知道Y值在抛物线的一边是递减,另一边是递增的。先找四点确定a
>0 or a<0.接着找到极值点。极值点将序列分成两段已经排序的子序列。在把两子序列
合并排序即可。

value

【在 c*********t 的大作中提到】
: Given
: 抛物线:y = ax^2 + bx + c (a≠0)
: 给了一些y的值,这些y值(y_1, y_2,..., y_n)是在x=x_1, x_2, x_3, ....., x_n 对
: 应的y.
: x_1: of x's are unknown.
: 问: 如何对y排序?
: Thanks

b***e
发帖数: 1419
11
为什么大家盯着极值点? 知道a正负直接两头merge就成了。

定a

【在 l****h 的大作中提到】
: 这倒题目主要是要你知道Y值在抛物线的一边是递减,另一边是递增的。先找四点确定a
: >0 or a<0.接着找到极值点。极值点将序列分成两段已经排序的子序列。在把两子序列
: 合并排序即可。
:
: value

H*M
发帖数: 1268
12
yeah
but u still need to do a little bit checking to see if all the points is mon
o-inc or dec..small work

【在 b***e 的大作中提到】
: 为什么大家盯着极值点? 知道a正负直接两头merge就成了。
:
: 定a

l****h
发帖数: 272
13
The extreme point will tell you when to stop merging.

【在 b***e 的大作中提到】
: 为什么大家盯着极值点? 知道a正负直接两头merge就成了。
:
: 定a

b***e
发帖数: 1419
14
Just merge, and when reaching the extreme, you will naturally know and
stop. You do NOT have to waste a separate cycle to compute the extreme.
Get it?

【在 l****h 的大作中提到】
: The extreme point will tell you when to stop merging.
1 (共1页)
进入JobHunting版参与讨论
相关主题
anybody remember this question?? (about sorting)A的电面挂了,防不胜防啊
问个sorting相关的题贡献1个A家3面的面经,被老印坑了
书上关于search和sorting的部分 应该不用全看吧?问一个题目merge intervals
问一下sortingG面试题求解
external sorting的一个问题re: 面试归来,上面经回馈各位战友
一个小公司面经求一下这题解法。
BB NON CS onsite面经question about big data
external sorting 的问题问一道题目。。
相关话题的讨论汇总
话题: merge话题: 抛物线话题: 排序话题: given话题: value