三路排序算法
算法思路:
leetcode75 sort colors
题意:把相同的颜色(用数字指代)按从小到大排序到一起。
解决代码:
时间复杂度:O(N)
空间复杂度:O(1)
class Solution {
public:
void sortColors(vector<int>& nums) {
int zero=-1,two=nums.size();
for(int i=0;i<two;)
{
if(nums[i]==1)
i++;
else if(nums[i]==2)
swap(nums[i],nums[--two]);
else
swap(nums[++zero],nums[i++]);
}
}
};

浙公网安备 33010602011771号