给定一个 int 数组,长度 200,里面的元素是 0-2000 内的随机数。找出 50-100 之间的所有数,并排序。大家有什么思路?

2015-07-09 16:36:41 +08:00
 marginleft
3440 次点击
所在节点    问与答
25 条回复
msg7086
2015-07-09 22:49:42 +08:00
最容易实现的方法就是堆排序了吧。开个priority queue什么的然后一边判断一边插♂,跑完就能拿到结果了。
lzdhlsc
2015-07-10 01:54:56 +08:00
桶排 O(n)
initdrv
2015-07-10 02:26:56 +08:00
身为一名默默无闻的JAVA新手,表示只能想到用Arrays的sort排序后,再用二分查找?分别得到不小于50和不大于100的角标?最后循环输出?😔😳
poke707
2015-07-10 12:41:30 +08:00
LZ其实使用了twitter sort的一个变种
https://github.com/ExPHAT/twitter-sort
marginleft
2015-07-10 13:23:38 +08:00
@poke707 为什么这么说呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/204509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX