描述:荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红、白、蓝。
现有若干由红、白、蓝三种颜色的条块序列,要将它们重新排列使所有相同颜色的条块在一起。
本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边
算法描述:i为工作指针,j以前的表示全为红色,k以后的全为蓝色,根据i扫描的颜色,
决定将其交换到序列的前部或者尾部。
如果i扫描的颜色是红色,则与当前j所在的位置交换颜色,同时i++,j++;
如果扫描到白色,则只需i++;如果是蓝色,则i与k对应的颜色交换,同时k--.