请问有什么办法能排一下?用泛型做一个优先队列,直接存的数字,最大的数优先出列,逻辑是每次添加后排序一次,然后出列出最后一个
我觉得用链表比较合适啊,按照顺序连起来,来了新的数字也不用重新排序,只要找到合适的位置插进去就行了
是 主要是想省省事 用数组 有可用的工具类 排序还是要排序的 找合适的位置插进去 不就和排序差不多嘛
这才发现引用类型 数组不满 sort会报异常
@不爱吃蘑菇的大蘑菇: 差太多了,把数组重新排一遍序的复杂度比往链表里插一个值大多了。即使是往数组里放也不用每次插入数据都重新排序吧。新建一个数组,把小于新数的部分拷过去,再加上新数,再把大于新数的数据拷过去,也不用重新排序啊。无论是从时间还是空间上看,链表都比数组好。
还得看你们的数据量吧,如果数据量小也就无所谓了,如果数据量大就得考虑复杂度。你说的问题可以这样解决,每次有新来数时把所有的数移动到一个新的数组里,这个数组的长度比老的数组大1.
@会长: 没有想到拷贝数组这个方法,谢谢。主要是这个是自己做着玩的才用数组,要工作用稍微多一点就用链表
@会长: 还是用链表吧 每次添加都新建一个数组 再比较 拷贝 工作量也不小