# 问题描写叙述：

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

Note:
You are not suppose to use the library's sort function for this problem.

# 代码：

void sortColors(int A[], int n) {  //C++
int rNum =0,wNum = 0, bNum =0;
for(int i = 0; i < n; i++){
if(A[i] == 0)
rNum++;
else if(A[i] == 1)
wNum++;
else bNum++;
}

int rBegin = 0;
int wBegin = rNum;
int bBegin = rNum+wNum;

//ith element i < rNum
for(int i = 0; i < n; i++){
if(i < rNum)
A[i] =0;
else if(i < n-bNum)
A[i] = 1;
else A[i] =2;
}
}

# one-pass algorithm

void sortColors(int[] A) {

int i=-1, j=-1, k=-1;

for(int p = 0; p < A.length; p++)
{
if(A[p] == 0)
{
A[++k]=2;
A[++j]=1;
A[++i]=0;
}
else if (A[p] == 1)
{
A[++k]=2;
A[++j]=1;

}
else if (A[p] == 2)
{
A[++k]=2;
}
}

}

LeetCode 75 Sort Colors 颜色分类（荷兰国旗）
Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
62 0
LeetCode 148. Sort List

55 0
|

LeetCode 75. Sort Colors

29 0
|

LeetCode 905. Sort Array By Parity
LeetCode 905. Sort Array By Parity
64 0
|
vr&ar
【LeetCode1122】数组的相对排序（哈希or自定义sort）

133 0

• 机器翻译
• 工业大脑

更多