美文网首页
Collections.sort和Arrays.sort JDK

Collections.sort和Arrays.sort JDK

作者: onemoremile | 来源:发表于2017-02-14 15:53 被阅读0次

    jdk1.6 中,都使用归并排序

    jdk1.7中,改为使用TimSort,而且对comparator的实现检查更加严格,如果没有考虑对象相等的比较,会抛出异常,因未满足三个条件,如下:

    a). sgn(compare(x, y)) == -sgn(compare(y, x))

    b). (compare(x, y)>0) && (compare(y, z)>0) 意味着compare(x, z)>0

    c). compare(x, y)==0 意味着对于任意的z:sgn(compare(x, z))==sgn(compare(y,z)) 均成立

    Why 换用TimSort?

    原因:Timsort是结合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法,它在现实中有很好的效率

    相关文章

      网友评论

          本文标题:Collections.sort和Arrays.sort JDK

          本文链接:https://www.haomeiwen.com/subject/bvnxwttx.html