Sort Colors
**题意:**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.
题解:就是给定一个数组里包含0,1,2 将它们按照 0 ,1,2这个顺序进行分块排序
代码
忽略1,将0排低位,2排高位
public class Solution {
public void sortColors(int[] nums) {
int count1 = 0, count2 = nums.length - 1, index = 0;
while(index <= count2){
if(nums[index] == 0){
nums[index] = nums[count1];
nums[count1] = 0;
count1++;
}
if(nums[index] == 2){
nums[index] = nums[count2];
nums[count2] = 2;
count2--;
index--;
}
index++;
}
}
}
本文介绍了一种有效的三色排序算法,该算法可以将数组中0、1、2三种颜色的对象按顺序排列。通过两个指针分别从数组的起始位置和末尾位置开始遍历,实现了原地排序。
3117

被折叠的 条评论
为什么被折叠?



