由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问道排序题
相关主题
一个特别的inplace merge two sorted arraysheap sort的缺点是什么?和quick sort比
有A[i]说说4sum的复杂度吧
哪位大写给说说 何时用 merge sort, 何时用 quick sort, 何时 heap sort贡献两个Amazon的电话面试题
问一道题(2)问一道题
面试中举例常见的高效排序算法, 为什么都举quicksort和mergesort, 很少说heapsort呢讨论一道老题:分离数组中的正负数 (转载)
问个简单的GooG题目分享今天做的一道基础题
呼吁不能只做150,leetcode,还要复习基础算法和数据结构问一道G家经典老题
讨论,careercup150 的1.3问一个题目merge intervals
相关话题的讨论汇总
话题: reverse话题: nlogn话题: nlgn话题: 排序话题: 需要
进入JobHunting版参与讨论
1 (共1页)
a**********2
发帖数: 340
1
不能用swap,只能用给定的function
reverse(i): reverse first i element in array.
有没有O(nlogn)解啊?
f****4
发帖数: 1359
2
应该没有吧
假设存在O(nlgn),则有
T(n) = 2T(n/2)+f(n)
需要f(n) = O(n)
考虑2n+1个数
n个1, n个3
3 3 3 3...3 1 1 1 1...1 2
用reverse()改成
1 1 1 1...1 2 3 3 3 3...3
需要 f(n) = n + n*( (n+1)+n) = O(n^2)
最后需要的run time 是O(n^2)
a**********2
发帖数: 340
3
可能average是O(nlogn)就可以了吧
我当时给的解法就是O(n^2)
对i<- n to 1
找到1到i里面最大的值arr[j]然后reverse(j),reverse(i)
明显他不满意,后来说quicksort,选第一个或者最后一个做pivot好像不行,如果题目
改成reverse(i,j)就好了
f****4
发帖数: 1359
4
reverse(i,j){
reverse(j);
reverse(i);
reverse(j);
}
谁来分析一下avg?

【在 a**********2 的大作中提到】
: 可能average是O(nlogn)就可以了吧
: 我当时给的解法就是O(n^2)
: 对i<- n to 1
: 找到1到i里面最大的值arr[j]然后reverse(j),reverse(i)
: 明显他不满意,后来说quicksort,选第一个或者最后一个做pivot好像不行,如果题目
: 改成reverse(i,j)就好了

d*******d
发帖数: 2050
5
这里的reverse是算O(n)呢还是算O(1)呢?
h*****3
发帖数: 1391
6
到底是reverse还是排序阿?我糊涂了
f*********1
发帖数: 75
7
exchange(i,j){
reverse(i,j);
reverse(i+1,j-1);
}
so nlogn ?

【在 f****4 的大作中提到】
: reverse(i,j){
: reverse(j);
: reverse(i);
: reverse(j);
: }
: 谁来分析一下avg?

f****4
发帖数: 1359
8
给的是
reverse(i); // 0~i reverse
除非说是 reverse(i) O(1)
不然很怀疑有 nlgn

【在 f*********1 的大作中提到】
: exchange(i,j){
: reverse(i,j);
: reverse(i+1,j-1);
: }
: so nlogn ?

m****t
发帖数: 555
9
这个就是Bill Gates上大一的时候发表的一篇数学论文,关于翻松饼次数的上下界,其
实就是这种reverse排序次数的分析。有兴趣者可以找来读一下。
m****t
发帖数: 555
10
查了一下,这个问题叫做pancake sorting,在数学上来说并不简单,已经研究了几十
年。现在最好的结果是需要执行reverse的次数介于(15/14)n 和 (18/11)n之间。
http://en.wikipedia.org/wiki/Pancake_sorting
q****x
发帖数: 7404
11
这里假定reverse(1)和reverse(100)代价相同?

【在 m****t 的大作中提到】
: 查了一下,这个问题叫做pancake sorting,在数学上来说并不简单,已经研究了几十
: 年。现在最好的结果是需要执行reverse的次数介于(15/14)n 和 (18/11)n之间。
: http://en.wikipedia.org/wiki/Pancake_sorting

f****4
发帖数: 1359
12
学习了~

【在 m****t 的大作中提到】
: 查了一下,这个问题叫做pancake sorting,在数学上来说并不简单,已经研究了几十
: 年。现在最好的结果是需要执行reverse的次数介于(15/14)n 和 (18/11)n之间。
: http://en.wikipedia.org/wiki/Pancake_sorting

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个题目merge intervals面试中举例常见的高效排序算法, 为什么都举quicksort和mergesort, 很少说heapsort呢
问个google面试题问个简单的GooG题目
一个NxN矩阵每行每列都sort好,如何排序?呼吁不能只做150,leetcode,还要复习基础算法和数据结构
数组中找和为0的3个数,4个数讨论,careercup150 的1.3
一个特别的inplace merge two sorted arraysheap sort的缺点是什么?和quick sort比
有A[i]说说4sum的复杂度吧
哪位大写给说说 何时用 merge sort, 何时用 quick sort, 何时 heap sort贡献两个Amazon的电话面试题
问一道题(2)问一道题
相关话题的讨论汇总
话题: reverse话题: nlogn话题: nlgn话题: 排序话题: 需要