Collections.sort的BigO是什么?

时间:2014-09-14 05:55:36

标签: java algorithm sorting data-structures big-o

我在两个列表中使用collections.sort来按字母顺序排列它们。 我把它放在一个函数中,我试图确定它的BigO

所以我想知道BigO for Collections.sort(列表)

    List list1 = new LinkedList();
    List list2 = new LinkedList();


    for(int i = 0; i < x.length(); i++){
        list1.add(x.charAt(i));
    }

    for (int i = 0; i < y.length(); i++){
        list2.add(y.charAt(i));
    }
    System.out.println(list1);
    Collections.sort(list1);
    System.out.println(list1);

    System.out.println(list2);
    Collections.sort(list2);

BigO究竟是什么? O(nlogn)?

1 个答案:

答案 0 :(得分:1)

引用javadoc

  

实现注意事项:此实现是一个稳定的,自适应的迭代合并输出,当输入数组被部分排序时,需要远远少于n lg(n)的比较,同时在输入数组随机排序时提供传统mergesort的性能。如果输入数组几乎已排序,则实现需要大约n次比较。临时存储要求从几乎排序的输入数组的小常量到随机排序的输入数组的n / 2个对象引用不等。