描述荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红、白、蓝。现有若干由红、白、蓝三种颜色的条块序列,要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边。输入第1行是一个正整数n(n 2 3 int main(){ 4 ....
分类:
其他好文 时间:
2014-11-15 15:24:39
阅读次数:
178
荷兰国旗问题描述荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红、白、蓝。现有若干由红、白、蓝三种颜色的条块序列,要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边。输入第1行是一个正整数n(n#include using...
分类:
其他好文 时间:
2014-11-02 18:08:49
阅读次数:
189
current遍历,整个数组序列,current指1不动,current指0,与begin交换,而后current++,begin++,current指2,与end交换,而后,current不动,end--。http://blog.csdn.net/v_july_v/article/details/...
分类:
其他好文 时间:
2014-10-14 20:32:19
阅读次数:
133
荷兰国旗有三横条块构成,自上到下的三条颜色依次为红,白,蓝。现有若干由红,白,蓝三种颜色的条块序列,要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放在最左边,所有白色的条块放在中间,所有蓝色的条块放在最右边。//条块颜色依次存放在L[0,1,2........n-1]中算法利...
分类:
其他好文 时间:
2014-10-11 23:18:06
阅读次数:
190
这道题目和分成两块的partition的扩展,例如有一堆0 1 2 数字组成的数组,要分成 00 00 11 1 1 222 2这种顺序的。
利用lumoto版的partition可以很好的解决,比hoare好多了,而且直接利用loop invariant,变成i j k三个指针,[low,i]=0 [i+1,j]=1, [j+1,k-1]=2, 里面如果新来2的话,直接k++,
...
分类:
其他好文 时间:
2014-07-20 10:47:16
阅读次数:
239
1 public class Solution { 2 public void sortColors(int[] A) { 3 int len=A.length; 4 int beg=0; 5 int end=len-1; 6 ...
分类:
其他好文 时间:
2014-07-05 21:34:36
阅读次数:
203
议题:快速排序算法实现之三(三路划分遍历,解决与划分元素相等元素的问题)分析:算法原理:使用三路划分策略对数组进行划分(也就是荷兰国旗问题,dutch
national flag problem)。这个实现是对实现二的改进,它添加处理等于划分元素的值的逻辑,将所有等于划分元素的值集中在一起,并且以后...
分类:
其他好文 时间:
2014-06-03 09:51:51
阅读次数:
386