当前位置:编程学习 > JAVA >>

实现一个无序列表插入到一个有序列表

目前想到两种思路:
a.序列先变成有序,然后再插入到有序列表
b.无序列表中的元素一个接一个插入有序列表

这个问题旨在讨论性能,请教各位还有什么其他的好的方法。
谢谢了! --------------------编程问答-------------------- 将无序列表全部插入有序列表后,将无序部分排序 --------------------编程问答-------------------- 数据量很大的话,a的效率应该比b高的多 --------------------编程问答-------------------- a的话序列先变成有序,然后再插入到有序列表
还是像归并排序那样要进行比较,归并过程(不包括先排序)的时间复杂度是O(n)
b.无序列表中的元素一个接一个插入有序列表
没有排序过程,但是因为是无序序列此时插入的时间复杂度是O(n*n)
我觉得如果无序列表元素很少的话,用a比较合适
如果无序列表元素比较多的话,还是用b吧
个人观点 --------------------编程问答-------------------- 无序列表,是什么列表?里面存什么数据。
如果存对象,就实现Comparable接口,重写compareTo方法,然后调用Arrays.sort方法了。
如果存的基本数据类型,就把无序的addAll进有序序列就可以了。
比如是Hashset的,addAll进TreeSet就好了。

--------------------编程问答-------------------- 关键是无序表的随机读取性能如何,如果这个性能高于排序,那就应该随机读取然后插入有序表,反之则应该先排序;
另外在插入有序表时,还应考虑随机写操作的性能,如果是自然顺序,应采用支持自然顺序的集合存储 --------------------编程问答-------------------- 这个列表是List<T>类型,泛型对象是自定义类实例
--------------------编程问答-------------------- List接口是有序的,其随即读写性能与实现这个接口的类型标称如何,比如ArrayList的随机读写性能就要比LinkedList高,而有序读写性能则相反
所以必须确定你的List的具体实现类型,才能确定实现方式 --------------------编程问答-------------------- 是ArrayList
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,