只要在常數時間內能夠將問題的大小削減爲其一部分($ \frac{1}{2} \(), 那麼該算法就是(\)O(logN)$)java
public static int maxSubSum(int[] arr) { int maxSum = 0, thisSum = 0; for (int i = 0; i < arr.length; i++) { thisSum += arr[i]; if (thisSum > maxSum) { maxSum = thisSum; } else if (thisSum < 0) { thisSum = 0; } } return maxSum; }
public static int binarySearch(int[] arr, int x) { int low = 0, high = arr.length - 1; while (low <= high) { int mid = (low + high)/2; if (arr[mid] < x) { low = ++mid; } else if (arr[mid] > x) { high = --mid; } else { return mid; } } return -1; }