• 单步执行的方式显示算法的工作流程


    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);
        }
        }
  • 相关阅读:
    结构型模式のBridge桥梁模式
    创建型模式のBuilder建造者模式
    设计模式的一点思考
    创建型模式のAbstractFactory抽象工厂模式
    初试phoenix
    内网搭建git server
    nsq 学习(三)nsqlookupd
    nsq 学习(二)简单使用
    nsq 学习(一)源码安装nsq
    go学习实践-protobuf
  • 原文地址:https://www.cnblogs.com/fuheishi/p/11056544.html
Copyright © 2020-2023  润新知