关于JAVA集合框架的问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 03:34:27
书上说
要进行搜索,数组和List必须首先进行排序
这个不太理解
没有排序我也照样能用binarySearch()进行搜索啊?
还有就是不太明白 “分类的”和“有序的”
这跟我的问题有关系吗 排序方法 JAVA自己就搞定了 这算法 不用知道的吧

看下二分查找的原理:

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。

treeset 树形结构 适合二分法查找 因为是有序的 如果搜索的话 有序的效率肯定更高
数组和list没有顺序

排序可以更快的搜索,不排序一样可以,看你的需求了