Arrays 标准库算法

Binary Search

public static int binarySearch0(Object[] a, int fromIndex, int toIndex, Object key) {
    int low = fromIndex;
    int high = toIndex - 1;
    while (low <= high) {
        int mid = (low + high) >>> 1;
        Comparable midVal = (Comparable) a[mid];
        int cmp = midVal.campareTo(key);
        if (cmp < 0)
            low = mid + 1;
        else if (cmp > 0)
            high = mid - 1;
        else
            return mid;
    }
    return -(low + 1);
}

 

Sort

  Arrays中的排序算法较多,有legacyMergeSort(),mergeSort(),sort()。sort()方法针对不同的参数也有不同的实现方法,如果参数是基本类型数组,则使用DualPivotQuicksort中的sort方法排序,如果参数是自定义类型,则使用legacyMergeSort,而legacyMergeSort实际上也是用mergeSort实现的。

posted @ 2015-06-09 20:11  一同  阅读(143)  评论(0编辑  收藏  举报