• 算法导论4线性时间与暴力寻找最大子数组


    // liner_time_max_subarray.cpp
    #include <iostream>
    #include <stdio.h>
    
    int my_sum(int const * p, int const n, int & begin, int & end)
    {
        int max;
        int sum;
        int max_all = p[0];
        unsigned int b = 0;
        unsigned int e = 0;
    
        for (int i = 0; i < n; ++i)
        {
            sum = 0;
            max = p[i];
            for (int j = i; j < n; ++j)
            {
                sum += p[j];
                if (sum > max)
                {
                    max   = sum;
                    b = i;
                    e = j;
                }
            }
            if (max > max_all)
            {
                max_all = max;
                begin = b;
                end   = e;
            }
        }
        return max_all;
    }
    
    int main()
    {
        int a[] = { 1, -2, 3, 10, -4, 7, 2, -5 };
        int i = 0;
        int j = 0;
        std::cout << my_sum(a, sizeof(a)/ sizeof(int), i, j) << std::endl;
        for (int m = i; m < j; m++)
        {
            std::cout << a[m] << " ";
        }
        std::cout << std::endl;
        getchar();
        return 0;
    }
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<limits.h>
    int maxsubset(int* a, int len) // 暴力violate
    {
        int summax = INT_MIN;
        int i, j, k;
        for(i = 0; i < len; i++)
        {
            for(j = i; j < len; j++)
            {
                int temp = 0;
                for(k = i; k <= j; k++)
                    temp += a[k];
                if(temp > summax)
                    summax = temp;
            }
        }
        return summax;
    }
    
    int main()
    {
        int a[] = { 1, -10, 2, 4, 6, -15, 6, 1, 9, -8 };
        printf("the maxsubset:%d
    ", maxsubset(a, sizeof(a) / sizeof(int)));
        getchar();
        return 0;
    }
    

    def84148de51967ffb931587e0b96a89 (1)

  • 相关阅读:
    python笔记
    React+router和react+redux使用过程的记录
    jQuery源码分析随笔
    安装nodejs+ionic+cordova环境心得
    win10系统Nodejs安装包总是失败原因
    silverlight中dialogresult和close
    安卓HTTP访问的两种方式
    安卓Activity跳转的几种方式
    Android开发Content Provider
    web.xml中filter的用法
  • 原文地址:https://www.cnblogs.com/sunyongjie1984/p/4271044.html
Copyright © 2020-2023  润新知