如何在Java中搜索间隔

时间:2017-06-29 17:33:44

标签: java arrays search find

就在我开始惹恼你之前,我是一个Java初学者,我最新的主要问题是两维更多维数组。 让我来代表我的问题: 研究中的任务是:您有一个已排序的数组,然后您键入程序应该执行的搜索操作数(让它们由N命名)的数量。 因此,您输入N x 2个不同的值aba应小于b。 程序应在已排序的数组中搜索包含ab的intervall,并打印出这些intervalls。 例如: 要搜索的数组如下所示:

 [1, 3, 5, 7, 9]

然后用户输入操作数,例如3.对此ab对夫妻:

3 6 

2 9

1 5

该计划的输出应该符合这些ab对夫妇:

3 7

1 9

1 5

我试图掌握这个练习,但如上所述,我遇到了多维数组的问题。在下面你可以看到我的代码,我只想要关于数组的tipps或特定信息,以了解它们是如何工作的。 我改进了它:

import java.util.*; 
public class Blatt9{
    public static void main(String[] args){

        Scanner s = new Scanner(System.in); 
        boolean check1 = false; 
        int N = s.nextInt(); 
        int[] array = new int[N]; 
        for(int i = 0; i < array.length; i++){
            array[i] = s.nextInt(); 
        }       
        for(int j = 0; j < array.length; j++){
            for(int k = j+1; j < array.length -1; j++){
                if(array[j] < array[k]){
                    check1 = true;                   
                }
                else{
                    check1 = false;     
                }           
            }
        }
        if(check1){
            System.out.println("nicht aufsteigend sortiert"); 
        }
        else{
            System.out.println("korrekt"); 
        }

        //Beginn der eigentlichen Aufgabe
        int abfragen = s.nextInt();       // Anzahl der Abfragen
        int[][] arr = new int[abfragen][2];  //um die abfragen zu speichern
        int a = 0; 
        int b = 0; 
        for(int i = 0; i < abfragen; i++){
            a = s.nextInt();  
            b = s.nextInt(); 
            if(a>b){
                System.out.println("Zahl 1 muss kleiner Zahl 2 sein"); 
                break; 
            }
            arr[i][0] = a; 
            arr[i][1] = b; 
        }
        int intervall1 = 0; 
        int intervall2 = 0; 

        for(int i = 0; i < array.length; i++){
            for(int j = 0; j < arr.length; j++){
                if(array[i] <= a){
                    intervall1 = a; 
                    }
                    if(array[i]>= b){
                        intervall2 = b; 
                    }
                }
            System.out.print(intervall1 + " " + intervall2); 
            System.out.println(); 
        }

    }
}

现在的输出是:

输入:

5

1 3 5 7 9

korrekt

3

3 6

2 9

1 5

开始输出:

1 0

1 0

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

1 5

0 个答案:

没有答案