zoukankan      html  css  js  c++  java
  • 单步执行的方式显示算法的工作流程

    import java.util.Scanner;
     
    import java.io.*;
    import java.math.BigDecimal;
     
    public class array1 {
     
         
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入数组的长度");
            int n=sc.nextInt();
            int array[]=new int[n];
            int array2[]=new int[n];
            System.out.println("请依次输入数组的每个值");
            for(int i=0;i<n;i++) {
                 array[i]=sc.nextInt();
            }
            for(int i=0;i<n;i++) {
                array2[i]=0;
            }
            int max;
            int[] array3=new int[2*n-1];
             
            for(int j=0;j<n;j++) {
                array3[j]=array[j];
                        }
            for(int i=n;i<2*n-1;i++)
            array3[i]=array[i-n];
            for(int i=0;i<2*n-1;i++) {
                System.out.print(array3[i]+" ");
            }
            /*当前最大子数组,从哪个到哪个,你检查了几个子数组了,还差几个。*/    
            System.out.print("
    ");
            int num=0;//数组个数。      
            System.out.println("输入0开始");
            int number=sc.nextInt();
            if(number==0) {
            for(int i=0;i<n;i++) {
                max=array3[i];
                int sum=0;
                //System.out.print("abc"+max+" ");
                int  temp=i;
                //for(int j=i;j<2*n-1;j++) {
                for(int j=i;j<=n-1+i;j++) {
                    num++;             
                    sum=sum+array3[j];             
                if((max<sum)&&(j-i+1<=n)) {
                    temp=j;
                    //System.out.println("123"+temp);              
                    max=sum;
                }  
                System.out.println("输入0执行下一步");
                int number1=sc.nextInt();
                if(number1==0) {
                System.out.println("当前执行第"+num+"步,当前正在计算第"+num+"个子数组,"+"从数"+array3[i]+"开始,"+"从数"+array3[j]+"结束,"+"当前最大子数组和为"+max+",最大子数组范围"+array3[i]+"到"+array3[temp]);
                }
                else {
                    System.out.println("输入有误,程序退出");
                    System.exit(0);
                }
                }
                                array2[i]=max; 
                    //System.out.println("def"+max);
            }
            }
            else {
                System.out.println("输入有误,程序退出");
                System.exit(0);
            }
            int k=array2[0];
            for(int i=0;i<n;i++) {
                System.out.println("ghi"+array2[i]);
            }
            for(int i=0;i<n;i++) {
                if(array2[i]>k) {
                    k=array2[i];
                }
            }
            System.out.println("最大值"+k);
        }
        }
  • 相关阅读:
    RBAC权限管理模型 产品经理 设计
    Redisson 分布式锁
    Jenkins下载历史Build版本的归档文件
    Java JPA @Transient 在Hibernate中应用
    Solving the Top ERP and CRM Metadata Challenges with erwin & Silwood
    MySQL 字符串 分割 多列
    MySQL CONCAT opposite
    Web并发页面访问量统计实现
    UNIX网络编程读书笔记:基本UDP套接口编程
    UNIX网络编程调试工具:tcpdump、netstat和lsof
  • 原文地址:https://www.cnblogs.com/fuheishi/p/11056544.html
Copyright © 2011-2022 走看看