一个数组中只有0,1,2三个元素,进行排序,要求时间复杂度为O(n)
1.设置三个标记指针,pos0,pos2,pcur
2.令pos0从前往后遍历,指向第一个非0的位置,pos2从后往前遍历,指向第一个非2的位置
3.然后pcur从pos0开始往后遍历:
遇到0就和pos0交换,pos0++;
遇到1什么也不做;
遇到2就和pos2交换,pos2向前滑动到下一个非2的位置,交换后还要重新检查pcur的值,为0就继续pos0交换,pos...
原创
2018-11-07 16:16:17 ·
2107 阅读 ·
0 评论