```
public void sortColors(int[] nums) {
int startIndex = 0;
int endIndex = nums.length - 1;
int temp,i =0;
while(i < nums.length) {
if (nums[i] == 0 && i != startIndex) {
temp = nums[i];
nums[i] = nums[startIndex];
nums[startIndex++] = temp;
} else if (nums[i] == 2 && i < endIndex) {
temp = nums[i];
nums[i] = nums[endIndex];
nums[endIndex--] = temp;
} else {
i++;
}
}
}
```