zoukankan      html  css  js  c++  java
  • 个人作业一(补充)

    package com.two;
    import java.io.BufferedReader;
    import java.util.Random;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.util.*;
    /*
     * 寻找各个数开头的最大值,进行比较
     * 
     * */
    public class two {
    
        
        public static void main(String[] args)
        {
            Random random=new Random();
            try {
                File f=new File("D:\workspace\two\two.txt");     
                //写入文件
                
                try {
                   BufferedWriter bw = new BufferedWriter(new FileWriter(f));
                   int sb=0;       
                   int pingjun = 0;
                   for(int i = 0; i < 10000000; i++){
                       sb = (int)Math.floor((random.nextDouble()*100000000.0));
                       bw.write(String.valueOf(sb));
                       bw.write(" ");
                   }
                   bw.flush();
                   bw.close();
                  }
                catch(Exception e) {
                    e.printStackTrace();
                }
            
                
                //读取文件
                if (f.exists()) {
                    System.out.println("文件存在");
                } else {
                    System.out.print("文件不存在");
                   // f.createNewFile();// 不存在则创建
                }
                BufferedReader input=new BufferedReader(new FileReader(f));
                int k=0;
                String str="";             //文件内容
                String s="";
                while((str=input.readLine())!=null) {
                     s=str+s;    
                }
                String[] a1=s.split(" ");        //分割
                int a[]=new int[a1.length];       //转换
                for(int t=0;t<a1.length;t++) {
                    a[t]=Integer.parseInt(a1[t]);
                }
                for(int t=0;t<a.length;t++) {
                    System.out.println(a[t]);
                }
                //获取数据
                int max[]=new int[a.length];
                for(int i=0;i<max.length;i++) {
                    max[i]=0;
                }
                int sum=0;
                for(int i=0;i<a.length;i++) {           //以各个数开头的最大值
                    max[i]=a[i];
                    sum=max[i];
                    if(i<a.length) {
                        for(int j=i+1;j<a.length;j++) {
                            sum=sum+a[j];
                            if(max[i]<sum)max[i]=sum;
                        }
                    }
                }
                int max1=max[0];
                for(int i=1;i<max.length;i++) {
                    if(max1<=max[i]) {
                        max1=max[i];
                    }
                }
                System.out.println("最大子数组之和为:"+max1);
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

    截图:

    以上代码是在文件中随机产生1亿以内的正整数,随机产生1千万个,存放到文件中,然后读取出来,求取最大子数组之和。

  • 相关阅读:
    Sql优化(二) 快速计算Distinct Count
    Minor GC和Full GC区别(转)
    对于JVM中方法区,永久代,元空间以及字符串常量池的迁移和string.intern方法
    2017/6/29杂记
    java中代理,静态代理,动态代理以及spring aop代理方式,实现原理统一汇总
    ThreadLocal的设计理念与作用
    2017/6/28杂记
    关于hashmap 与concurrentHashMap
    2017/6/27杂记
    深入理解java异常处理机制
  • 原文地址:https://www.cnblogs.com/liyuchao/p/10548286.html
Copyright © 2011-2022 走看看