由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Quick Sort的partition问题
相关主题
问题:Find the minimum number of "swaps" needed to sort an arraydiscuss an array rearrange question
再来一道题问一个amazon的数组排序题
~~~~~~~~问个G家的题~~~~~~~~~~~One Amazon question
Re: 贡献个facebook电话interview问一道题, 不是很难, 但不知道最优解是什么
这个rotated sorted array问题Programming Pearl上的3way partition好像不work
大家看看这几道google面试题怎么做?Quick selection for k unsorted arrays
3-way Partition 算法不容易CC150 18.6 quick select
Interview QuestionQuick sort为什么需要logN的memory?
相关话题的讨论汇总
话题: array话题: pivot话题: int话题: partition话题: sort
进入JobHunting版参与讨论
1 (共1页)
d**e
发帖数: 6098
1
小于pivot的放左右,大于pivot的放右边,等于pivot的放中间
谁有比较简洁的code?
我写了很久还是非常烦琐。
谢谢。
另外看见另外一道类似的算法,应该是同一个问题:一个数组,把数字放左边,小写字
母放中间,大写字母放右边。
d**e
发帖数: 6098
2
好像找到了。
http://www.sorting-algorithms.com/quick-sort-3-way

【在 d**e 的大作中提到】
: 小于pivot的放左右,大于pivot的放右边,等于pivot的放中间
: 谁有比较简洁的code?
: 我写了很久还是非常烦琐。
: 谢谢。
: 另外看见另外一道类似的算法,应该是同一个问题:一个数组,把数字放左边,小写字
: 母放中间,大写字母放右边。

r***u
发帖数: 241
3
Dutch national flag problem

【在 d**e 的大作中提到】
: 小于pivot的放左右,大于pivot的放右边,等于pivot的放中间
: 谁有比较简洁的code?
: 我写了很久还是非常烦琐。
: 谢谢。
: 另外看见另外一道类似的算法,应该是同一个问题:一个数组,把数字放左边,小写字
: 母放中间,大写字母放右边。

d**e
发帖数: 6098
4
谢谢。真的很简洁。
void three_way_partition(int array[], int i, int j)
{
int k = i;
int pivot = array[j];
while(i < j)
{
if(array[i] == pivot)
i++;
else if(array[i] < pivot)
{
swap(array[i], array[k]);
k++;
i++;
}
else
{
swap(array[i], array[j]);
j--;
}
}
}

【在 r***u 的大作中提到】
: Dutch national flag problem
1 (共1页)
进入JobHunting版参与讨论
相关主题
Quick sort为什么需要logN的memory?这个rotated sorted array问题
问一个quick sort partition的问题, 二爷请进大家看看这几道google面试题怎么做?
BB家面经3-way Partition 算法不容易
Google电话面试题目Interview Question
问题:Find the minimum number of "swaps" needed to sort an arraydiscuss an array rearrange question
再来一道题问一个amazon的数组排序题
~~~~~~~~问个G家的题~~~~~~~~~~~One Amazon question
Re: 贡献个facebook电话interview问一道题, 不是很难, 但不知道最优解是什么
相关话题的讨论汇总
话题: array话题: pivot话题: int话题: partition话题: sort