题目链接
解决方案:使用快排
代码为:
class Solution {
public void sortColors(int[] nums) {
int i = 0, L = -1, R = nums.length;
while(i < R) {
if(nums[i] == 0){
swap(nums,i,L + 1);
L++;
i++;
}
else if(nums[i] == 1) {
i++;
}
else{
swap(nums,i,R - 1);
R--;
}
}
}
//i和j不能相同
private void swap(int[] nums,int i,int j){
if(i == j)
return ;
else {
nums[i] = nums[i] ^ nums[j];
nums[j] = nums[i] ^ nums[j];
nums[i] = nums[i] ^ nums[j];
}
}
}