示例#1
0
文件: subseq.hpp 项目: dblalock/dig
static inline std::pair<length_t, length_t> maximum_subarray(const data_t* data,
	length_t len, length_t minSpacing=1)
{
	length_t start_best = 0, end_best = 0;
	maximum_subarray(data, len, start_best, end_best, minSpacing);
	return std::pair<length_t, length_t>(start_best, end_best);
}
int main()
{
	int a[] = {13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7};
	printf("sum %d\n", maximum_subarray(a, 0, sizeof(a)/sizeof(a[0])));
	printf("left %d right %d\n", l_index, h_index);
	return 0;
}
示例#3
0
int maximum_subarray (std::vector<int> v, int lower, int upper)
{
    if (lower == upper)
        return v[lower];
    else {
        int m = (lower + upper) / 2;
        int left_sum = maximum_subarray (v, lower, m);
        int right_sum = maximum_subarray (v, m + 1, upper);
        int cross_sum = maximum_crossing_subarray (v, lower, m, upper);
        if (left_sum >= right_sum && left_sum >= cross_sum)
            return left_sum;
        else if (right_sum >= left_sum && right_sum >= cross_sum)
            return right_sum;
        else
            return cross_sum;
    }
}
示例#4
0
int main(void)
{
    std::ifstream f ("date.in");
    std::vector<int> v;
    v = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
    std::cout << "v: " << v << std::endl;

    std::cout << "Suma maximă: " << maximum_subarray (v, 0, v.size ())<< std::endl;
    f.close();
}
示例#5
0
int main()
{
    maximum_subarray();
    return 0;
}
示例#6
0
文件: subseq.hpp 项目: dblalock/dig
static inline std::pair<length_t, length_t> maximum_subarray(
	const Container<data_t>& data, length_t minSpacing=1)
{
	return maximum_subarray(data.data(), data.size(), minSpacing);
}