zoukankan      html  css  js  c++  java
  • 软件工程-个人作业1

    1、生成一个整型数组

    2、生成子数组:按照顺序遍历,以遍历到的数组元素为基准,依次累加求和,将每一个基准生成的子数组和存在第二个数组中。

    3、求出每个子数组的和:将每一个基准生成的子数组和求出最大值存在第三个数组里。

    4、求出最大子数组的和:求出第三个数组里的最大数组元素即为最大子数组的和。

    5、输出

    1、累加求和,一开始没有使用sum进行中间传值,而是直接传值给第二个数组,由于数组下标的错误导致累加求和失败

    2、算法复杂度太大

     1 package main;
     2 
     3 import java.util.Arrays;
     4 import java.util.Scanner;
     5 
     6 public class main {
     7     public static void main(String[] args) {
     8         Scanner cin=new Scanner(System.in);
     9         int[] a = new int[5];
    10         int[] b = new int[5];
    11         int[] c = new int[5];
    12 //        生成整型数组
    13         for (int i = 0; i < a.length; i++) {
    14             a[i]=cin.nextInt();
    15         }
    16 
    17         for (int j = 0; j < c.length; j++) {
    18         int sum=0;
    19         for (int i = j; i < a.length; i++) {//生成各个子数组
    20             sum=a[i]+sum;                   //(连续的一个和多个整数组成)
    21             b[i]=sum;                       //求出各个子数组的和
    22         }
    23         int max=b[0];                       //比较各个子数组的和的大小
    24         for (int i = j; i < b.length; i++) {
    25             if(max<b[i])max=b[i];
    26         }
    27         c[j]=max;
    28         }
    29         int max=c[0];
    30         for (int i = 0; i < c.length; i++) {//输出最大子数组的和
    31             if(max<c[i])max=c[i];
    32         }
    33         System.out.println(Arrays.toString(a));
    34         System.out.println(Arrays.toString(c));
    35         System.out.println(max);
    36     }
    37 }

     

    本次个人作业只能使用复杂度较大的程序实现其功能,一开始思路不够清晰,使用自然语言写出思路,再使用代码实现每一个模块,将复杂问题简单化,简单问题逻辑化。

  • 相关阅读:
    oracle数据库体系架构详解
    数据库迁移之从oracle 到 MySQL
    一个专业DBA应具备的技能
    Oracle 内存参数调优设置
    正向代理与反向代理的区别
    负载均衡的几种常用方式
    Java虚拟机JVM学习07 类的卸载机制
    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论
    Git 撤销修改
    Git 分支管理和冲突解决
  • 原文地址:https://www.cnblogs.com/quxiangjia/p/10513483.html
Copyright © 2011-2022 走看看