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);
        }
        }
  • 相关阅读:
    我希望在软件开发生涯初期就知道的 4 件事
    Git学习-安装与创建本地仓库
    sql 单表distinct/多表group by查询去除重复记录
    <xsl:apply-templates>和<xsl:call-template>的区别
    jquery插件之poshytip
    SQL查询出距当前时间最近的一条或多条记录。
    div标签嵌套原则详解(转载)
    在JSP页面用EL表达式获取数据
    JSP静态include和动态include的区别
    Java基础笔试题
  • 原文地址:https://www.cnblogs.com/fuheishi/p/11056544.html
Copyright © 2011-2022 走看看