码迷,mamicode.com
首页 > 编程语言 > 详细

算法小记

时间:2018-07-01 13:37:34      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:source   算法   pre   nlog   最大子序列和   length   +=   arch   常数时间   

只要在常数时间内可以将问题的大小削减为其一部分($ \frac{1}{2} $), 那么该算法就是($O(logN)$)

  1. 最大子序列和问题($O(NlogN)$)

    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;
    }
  2. 折半查找binary search($O(logN)$)

    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;
    }

算法小记

标签:source   算法   pre   nlog   最大子序列和   length   +=   arch   常数时间   

原文地址:https://www.cnblogs.com/studentytj/p/9249819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!