zoukankan      html  css  js  c++  java
  • 课堂测试有感-数组

     这节课测试内容:在一个数组中找到最大的子数组,且时间复杂度为O(n),这就比较难了,上去讲解自己的代码的人都是一些各种各样的方法,而我用最简单的方法,将用户定义的数组找出各个子数组之和,放入另一个数组中,利用冒泡排序找到最大子数组。也很简单,但是时间复杂度比较大为O(n^2)。

    代码如下:

    import java.util.Scanner;

    public class shuzu {
    public static void main(String args[])
    {
    Scanner s=new Scanner(System.in);
    System.out.println("请输入数组数目:");
    int sum=s.nextInt();
    int []a=new int[sum];
    System.out.println("请输入"+sum+"个数:");
    for(int i=0;i<sum;i++)
    {
    a[i]=s.nextInt();
    }
    s.close();
    int sum1=0;
    for(int i=1;i<=sum;i++)
    {
    sum1=sum1+i;
    }
    int [] b=new int[sum1];
    int temp1=0;
    for(int i=0;i<sum;i++)
    {
    int temp=0;
    for(int k=0;k<sum-i;k++)

    temp=temp+a[i+k];
    b[temp1]=temp;
    temp1++;
    }
    }
    for(int i=0;i<sum1-1;i++)
    for(int k=0;k<sum1-1-i;k++)
    {
    if(b[k]<b[k+1])
    {
    int temp2=b[k];
    b[k]=b[k+1];
    b[k+1]=temp2;
    }
    }
    System.out.println("最大的子数组和为"+b[0]);
    }
    }

     总结:好久没有编写简单的JAVA程序,很多代码都忘了,主要还是自己编的太少,很多人用不同的方法实现结果,我发现到达一个地点有很多路径,成功也是一样。

  • 相关阅读:
    SVD与PCA
    Service(二):通信
    Service(一):认识service、绑定Service
    计划(四)
    Android studio 安装过程中遇到的问题
    UFLDL 教程学习笔记(四)
    opencv之dft及mat类型转换
    《第一行代码》(四)
    《第一行代码》
    计划(三)
  • 原文地址:https://www.cnblogs.com/jccjcc/p/10505765.html
Copyright © 2011-2022 走看看