查看: 12197|回复: 75
收起左侧

Microsoft : Sort 只含0,1,2三个元素的数组

  |只看干货 |刷题
头像被屏蔽

分享帖子到朋友圈
wwwyhx | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:Microsoft : 根据前续遍历和中序遍历构建二叉树
下一篇:Google : 找丑数
ljfljf2006 2011-4-27 13:33:35 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (36)
 
 
0% (0)    👎
统计一下 0 1 2 分别有多少个
然后给数组赋值
O(N)
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-4-27 18:10:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

kidd_yq@163.com 2011-4-27 18:32:08 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (22)
 
 
0% (0)    👎
回复 3# wwwyhx


我是小白,问一下,什么是bit map啊?位映射?
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-4-27 18:35:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

kidd_yq@163.com 2011-4-27 18:52:38 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (22)
 
 
0% (0)    👎
回复 5# wwwyhx

谢谢版主帮我科普了,我再好好想想这题,觉得这题很有意思~~
回复

使用道具 举报

wwtpcsuper 2011-4-27 19:00:33 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (1475)
 
 
3% (49)    👎
本帖最后由 wwtpcsuper 于 2011-4-27 19:02 编辑

不知道对不对哈:

scan,第一个2标上label,如果scan到0就移到最前面,scan到2就移到最后面,1就不动


直到scan到label停止。。。


这个算法想法会不会too naive...
回复

使用道具 举报

Etrnls 2011-4-27 19:42:20 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (7)
 
 
0% (0)    👎
快排的partition过程不就是选一个pivot然后用O(n)的时间把数组变成一半小于等于pivot一半大于pivot嘛
这里只要先选pivot等于0,于是分成了两份,第一份<=0,第二份>0
然后对第二份选pivot=1再同样道理处理一边就行了

按照这样的方法对于只含有0, 1,2, 3, ..., k,k个元素的数组需要O(kn)的时间
回复

使用道具 举报

lwy.tsinghua 2011-4-28 05:42:44 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   50% (3)
 
 
50% (3)    👎
设置三个标记指针,pos0,pos2,cur
令pos0从前往后遍历,指向第一个非0的位置,pos2从后往前遍历,指向第一个非2的位置
然后cur从pos0开始往后遍历:
遇到0就和pos0交换,pos0++;
遇到1什么也不做;
遇到2就和pos2交换,pos2向前滑动到下一个非2的位置,交换后还要重新检查cur的值;
直到cur与pos2相遇。
一次遍历,复杂度是O(n),因为每次操作都使得数组更为有序,不像快排需要重复比较,所以比应用快排的方法效率高一些,但是因为只是针对三个元素设计的,所以不如Etrnls给的算法复用性好。

评分

参与人数 1大米 +89 收起 理由
wwwyhx + 89

查看全部评分

回复

使用道具 举报

wwtpcsuper 2011-4-28 05:56:52 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (1475)
 
 
3% (49)    👎
LS THU!!!

崇拜~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

>
快速回复 返回顶部 返回列表