zoukankan      html  css  js  c++  java
  • 数组、求和最大的子数组

    一、要求

    1、定义整型数组、数组长度已知、数组元素随机生成、要求有正有负。

    2、求出元素之和最大的子数组,要求元素要连续

    3、时间复杂度为O(n)

    二、思路

    将和最大的子数组放在一个数组中,进行元素的叠加,记录最大值,类似于递归的思想,等加到第i+1次出现最大值减少的的时候,第i次的结果即为最大值。

    三、代码

    #include<iostream> using namespace std;

    #define N  7

    void fun(int *p, int n,int &max)

    {

     int j,sum =0;

     for (j = n; j >= 0; j--)

     {  

     sum += p[j];  

     if (max < sum)  

     {  

      max = sum;

      }

     }

    }

    void main()

    {

     int a[N], i;

    cout << "请随机产生" << N << "个数组元素" << endl;

     for (i = 0; i < N; i++)

      a[i] = rand() % 80 -40;

     for (i = 0; i < N; i++)  

     cout << a[i] << "  ";

     int max = a[0];

     for (i = 0; i < N; i++)   fun(a, i, max);

     cout << "最大的数:" << max << endl;

    }

    四、截图

    四、总结

    利用这次编程的机会,熟悉了函数的书写,数组的复习应用等等知识点,当然最大的收获,是这个程序的算法。

    psp表格

    时间记录日志

    学习时间 3.21上午在图书馆查阅资料复习相关知识
    实现时间 3.21下午在宿舍进行程序的编译   30分钟完成

    缺陷记录日志

    日期 编号 引入阶段 排除阶段 修改过程 描述  
    3.21 1 输入 生成 查阅资料 对宏定义的使用有些错误的地方  
    3.21 2 输入 生成 直接修改 输入的时候,因为太注重对宏定义  因而在句尾忘记加上了分号  
    3.21 3 输入 生成 直接修改 在输入中文的时候转换了输入法,结果后来输入的时候没有改回来  导致错误。  
                 
  • 相关阅读:
    一、Django CBV and Django RestFramework
    Web框架及Django初始化
    HTTP协议
    Mysql之存储引擎
    Django之ORM字段相关
    Django之视图
    Django之初步实现登录功能,APP及ORM
    jQuery
    C#基础:飞行棋游戏
    C#基础练习
  • 原文地址:https://www.cnblogs.com/revenge/p/4360460.html
Copyright © 2011-2022 走看看