第一堂课测试——数组

先第一代代码

 1 package 数组;
 2 import java.util.List;
 3 import java.util.Scanner;
 4 import java.util.*;
 5 import java.util.Scanner;
 6 import java.util.StringTokenizer;
 7 import java.io.BufferedReader;
 8 import java.io.FileOutputStream;
 9 import java.lang.Math;
10 import java.io.IOException;
11 public class Int {
12     
13     public static void main(String[] args)
14     {
15     int[] str=new int[100];//主体
16     int[] str1=new int [100];//每一个的串值
17     System.out.println("请输入您要输入的数目:");
18     int a=0;//总数
19     Scanner scan=new Scanner(System.in);
20     a=scan.nextInt();
21     System.out.println("请输入整型数字:");
22     for(int i=0;i<a;i++) {
23         int s1;
24         s1=scan.nextInt();
25         str[i]=s1;
26     }int l=0;
27     for(int i=0;i<a;i++) {
28         System.out.println("第"+(i+1)+"个是:"+str[i]);
29     }
30     int O=0;
31     for(int i=0;i<a;i++) {
32         int i1=i+1;
33         int o;o=0;
34         for(int j=i+1;j<a;j++)
35         {    O=O+1;
36             int m=str[i]; int n=str[j];
37             int N=0;int M=0;
38             o=o+1;
39             if(o==1) {
40                 M=n+m;
41                 str1[O-1]=M;
42             }
43             else {
44                 N=str1[O-2]+n;
45                 str1[O-1]=N;
46                 System.out.println(n);
47             }
48             System.out.println("数字:"+(O-1)+"   "+str1[O-1]);
49             l=O;
50         }
51     }int max=0;
52     max=str1[0];
53     for(int i=0;i<l;i++) {
54         int m1=0;int m2=0;
55         m1=str1[i];
56         m2=str1[i+1];
57         if(max<m2)max=m2;
58         if(max<m1)max=m1;
59     }
60     if(max<str[0])max=str[0];
61     if(max<str[a-1])max=str[a-1];
62     System.out.println(max);
63     }
64 }

由于这个并没有实现O(n)

然后下一代

 1 package 数组;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Shu {
 6 public static void main(String[] args) {
 7     int[] str=new int[100];
 8     int[] str1=new int[100];
 9     System.out.println("请输入您要输入的数目:");
10     int a=0;//总数
11     Scanner scan=new Scanner(System.in);
12     a=scan.nextInt();
13     System.out.println("请输入整型数字:");
14     for(int i=0;i<a;i++) {
15         int s1;
16         s1=scan.nextInt();
17         str[i]=s1;
18     }int l=0;
19     for(int i=0;i<a;i++) {
20         System.out.println("第"+(i+1)+"个是:"+str[i]);
21     }
22     int N=-1;//第一个的在数组第几个
23     for(int i=0;i<a;i++) {
24         if(str[i]>0) {
25             N=i;break;
26         }
27     }
28     int max=str[0];//选最大的
29     if(N==-1) {//如果数组里没有正数(0或者负数)
30         for(int i=0;i<a;i++) {
31             if(max<str[i])max=str[i];
32         }
33         System.out.println("最大的子数组:"+max);
34     }
35     else {
36         int M=0;//数据块最后一个
37         int S=0;//判断数据块是正
38         for(int i=N+1;i<a;i++) {
39             int j=0;
40             S=S+str[i];
41             if(S>0)
42             {
43                 M=i;
44                 str1[j]=S;
45                 break;
46             }
47             j=j+1;
48         }
49         if(M==a-1)
50         {
51             max=S;
52             System.out.println("最大的子数组:"+max);
53         }
54         
55         
56         
57         
58         
59         
60     }
61 }
62 }

 

posted @ 2019-03-10 21:37  博二爷  阅读(130)  评论(0编辑  收藏  举报