Sort Colors(双指针)
Given an array with_n_objects colored red, white or blue, sort themin-placeso 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.
Example:
Follow up:
A rather straight forward solution is a two-pass algorithm using counting sort.
First, iterate the array counting number of 0's, 1's, and 2's, then overwrite array with total number of 0's, then 1's and followed by 2's.
Could you come up with a one-pass algorithm using only constant space?
分析
双指针
大的和后面换,小的和前面换。记得和小的一起走,大的不要走。因为小的前面已经排序可以过了。
right 是待定的位置,所以是i<=right
left 都是<=Mid (small and mid)所以要同时前进,因为Mid情况也要++ 但是right不一定,可能换来的是small 需要继续判断
Last updated