Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
438647 | Theoretical Computer Science | 2006 | 9 Pages |
Given a sequence of n real numbers and an integer k, , the k maximum-sum segments problem is to locate the k segments whose sums are the k largest among all possible segment sums. Recently, Bengtsson and Chen gave an -time algorithm for this problem. Bae and Takaoka later proposed a more efficient algorithm for small k. In this paper, we propose an O(n+klog(min{n,k}))-time algorithm for the same problem, which is superior to both of them when k is o(nlogn). We also give the first optimal algorithm for delivering the k maximum-sum segments in non-decreasing order if k⩽n. Then we develop an -time algorithm for the d-dimensional version of the problem, where d>1 and each dimension, without loss of generality, is of the same size n. This improves the best previously known O(n2d-1C)-time algorithm, also by Bengtsson and Chen, where . It should be pointed out that, given a two-dimensional array of size m×n, our algorithm for finding the k maximum-sum subarrays is the first one achieving cubic time provided that k is O(m2n/logn).