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实现的。

你可能感兴趣的:(Arrays)