问题描述:将一串含有0,1,2的数组进行排序,使所有的0在最前面,所有的1在中间,所有的2在最后面
解题思路1:确定0,1,2的个数
0的个数:数组长度-数组总和
1的个数:遍历数一下
解题思路1:确定0,1,2的个数
0的个数:数组长度-数组总和
1的个数:遍历数一下
2的个数:总个数-0的个数-1的个数
问题1:不count的话,0的个数计算不出
解题思路2:设变量num_0,num_1,num_2=-1,遍历一遍,当遇到0时,A[++num_2] = 2;A[++num_1] = 1;A[++num_0] = 0
遇到1时,A[++num_2] = 2;A[++num_2] = 1
遇到2时,A[++num_2] = 2
即num_0,num_1,num_2分别记录着0,1,2的下标位置,当遇到1时,1,2的下标位置都要向后移一。
为什么初始值为-1:因为下标从0开始计算,A[0]也要重新赋值