首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

双重循环 和 Arrays.sort()+Arrays.binarySearch() 哪种方式效率高?解决方法

2012-01-21 
双重循环 和 Arrays.sort()+Arrays.binarySearch() 哪种方式效率高?两个数组:String[]AString[]B两种循

双重循环 和 Arrays.sort()+Arrays.binarySearch() 哪种方式效率高?
两个数组:
String[]   A   ;
String[]   B   ;

两种循环方法:
1.
for   (int   i   =   0;   i   <   A.length;   i++)   {
        for   (int   j   =   0;   j   <   B.length;   j++)   {
                if   (A[i].equals(B[j]))   {
                        break;
                }
        }
}

2.
Arrays.sort(A);  
for   (int   k   =   0;   k   <   B.length;   k++)   {
        if   (Arrays.binarySearch(A,   B[k])   > =   0)   {
                break;
        }
}

哪种会更快一些呢?

[解决办法]
测试 下就 知道 了
[解决办法]
测试仪下看看,好像这东西要看你的具体情况的
[解决办法]
从算法复杂度上看,他们是一样的;
从具体的个案来说,要看A和B的具体数据
[解决办法]
第二种可能是O(N*(N+1)/2)+N*LOG(N)
可以知道 当数据越多 第2种将有一定优势
[解决办法]
Arrays.sort()使用的是经过优化过的快速排序算法,数据量越大,其速度越快。在数据量达到万、十万级别时速度差是很明显的。

热点排行