记得看到一道面试题,就是给你一列很长的0,1,2,,比如0000112101210021000. 将其排序输出,要求顺序为升序。即为0000000111111122222222

脑海里有这个印象,不过没在意,因为实在没时间想啊。刚才上厕所的时候(真的是上厕所的时候。。。),想起来了,就思考一下。

我的思路就是大概过一下现有的常用的排序算法,然后根据数据特征,选择一种。如果不行的话,再考虑自己动手。

思考一下,可以用类似“桶排序”,建立一个整数型三个元素的数组。之后顺序读取,将对应的数组下标的值累次加1.最后根据个数,按序输出即可。

复杂度O(n).不过好像不是稳定排序。

posted on 2012-12-14 21:19  laskfla  阅读(118)  评论(0编辑  收藏  举报