摘要:
题目来自陈利人的面试微信平台:待字闺中题目描述如下:排序只有1,2,3三个元素的数组,不能统计1,2,3的个数。 希望大家能够相出多多的思路。比如,最小的空间,最少的次数。首先的思路肯定是,时间复杂度最高的一种,按顺序扫描数组,遇到一个1,扔到最前面,遇到一个3,扔到最后面,这样的时间复杂度为O(n2)。其次可以采用快排的交换思想,第一遍顺序扫描整个数组,分三种情况:1)数字为1,从数组开始后找第一个出现的数字2或者3,与本位置的1相对换;2)数字为2,从2的位置+1往后面找数字1,与本位置的2相对换;3)数字为3,不做处理,因为3本来就应该排在最后面的。这个时间复杂度在最坏情况下貌似还是O( 阅读全文