배열에 주어진 범위 내의 숫자가 포함되어 있는지 확인

큐리 온

그래서, 나는 반환하는 프로그램을 구현하는 문제가 주어 졌어 true정렬 된 정수의 배열보다 숫자 이상을 포함하는 경우 I미만을 u, false그렇지 않으면.

사용자가 입력하는 방법을 알 수 없기 때문에 빠른 정렬 알고리즘이 배열을 정렬하는 좋은 방법이라는 것을 확인했습니다. 그런 다음 정렬 된 배열을 이진 검색에 공급하고 배열에 포함되어 있는지 확인합니다. 지정된 범위 내의 정수. 문제는 여기에서 찾고 싶은 하나의 값이 아니라 범위이기 때문에 이에 대해 추론 할 수없는 것 같습니다. 또한 가능하면 재귀 적으로 구현하고 싶습니다.

지금까지 내가 가진 내용은 다음과 같습니다.

import java.util.Scanner;

class RangeBinarySearch {
    public static int[] quickSort(int[] unsortedArray, int left, int right) {
    int[] sortArray = unsortedArray;
    if (left >= right)
        return sortArray;

    int pivot = unsortedArray[(left + right) / 2];

    int i = left;
    int j = right;

    while (i <= j) {
        while (unsortedArray[i] < pivot)
            i++;
        while (unsortedArray[j] > pivot)
            j--;
        if (i <= j) {
            int temp = unsortedArray[i];
            unsortedArray[i] = unsortedArray[j];
            unsortedArray[j] = temp;
            i++;
            j--;
        }
    }

    if (left < j)
        quickSort(unsortedArray, left, j);
    if (right > i)
        quickSort(unsortedArray, i, right);

    return sortArray;
    }

    public static boolean withinRangeSorted(int[] sortedArray, int I, int u) {// This uses binary search

    int start = 0;
    int end = sortedArray.length - 1;
    int mid = sortedArray[(start + end) / 2];


        if (sortedArray[start] > u || sortedArray[end] < I)
            return false;
        else if (sortedArray[start] > I && sortedArray[end] < u)
            return true;

        else {
            // What to do here? I am stuck!

        }
    return false;
    }

    public static void main(String[] args) {
    int size;
    int inum;

    Scanner input = new Scanner(System.in);
    System.out.println("Enter the size of the array: ");
    size = input.nextInt();
    int[] unsortArray = new int[size];

    for (int i = 0; i < size; i++) {
        int c = i + 1;
        System.out.println("Enter element " + c + " to be added to the array: ");
        inum = input.nextInt();
        unsortArray[i] = inum;
    }

    int left = 0;
    int right = size - 1;

    int[] sortedArray = quickSort(unsortArray, left, right);
    int I; // greater than
    int u; // less than

    System.out.println("Enter range starting point: ");
    I = input.nextInt();
    System.out.println("Enter range end point: ");
    u = input.nextInt();

    boolean result = withinRangeSorted(sortedArray, I, u);
    System.out.println(result);
    }
}

문제는 방법을 구성하는 withinRangeSorted방법 을 알아낼 수 없다는 것 입니다.

나는보다 크 I거나 작은 값을 검색하는 경우에도 메소드가 어떤 종류의 매개 변수를 취해야하는지에 대해 주로 혼란 스럽 습니다 u. 나는 여기서 올바른 길을 가고 있다고 생각하지만 재귀를 제대로 공식화 할 수없는 것 같습니다.

어떤 도움이라도 대단히 감사하겠습니다.

Svante

이진 검색 중에 범위 검사를 기반으로 배열 경계를 조정하기 만하면됩니다. 나는 논쟁이 l(낮음)과 u(위)를 의미한다고 확신합니다 . 항상 범위를 포괄적 인 것으로 취급합니다.

/**
 * Whether array has at least one element x such that l <= x < u.
 */
boolean withinRangeSorted (int[] array, int l, int u) {
    int start = 0;
    int end = array.length;
    while (start < end) {
        int current = (start + end) / 2;
        if (array[current] >= u) {
            end = current;
        } else if (array[current] < l) {
            start = current + 1;
        } else {
            return true;
        }
    }
    return false;
}

당신은 재귀 구현, 사용이 점을 변환하려는 경우 startend재귀 도우미에 인수로. 범위를 포괄적으로 제외하지 않으려면 <, <=등 및을 조정 + 1하되 off-by-one-errors를 확인하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

VBA 배열에 범위의 문자열이 포함되어 있는지 확인하는 방법

분류에서Dev

R-문자열에 특정 날짜 범위 내의 날짜가 포함되어 있는지 확인

분류에서Dev

내 문자열에 배열의 요소가 포함되어 있는지 확인

분류에서Dev

Aurelia e2e : div 내의 범위에 특정 텍스트가 포함되어 있는지 확인

분류에서Dev

숫자의 문자열 배열에 기호가 포함되어 있는지 확인

분류에서Dev

숫자에 수업 배정을위한 숫자가 포함되어 있는지 확인

분류에서Dev

단어에 영숫자가 포함되어 있는지 확인

분류에서Dev

주어진 목록에 숫자가 포함되어 있는지 확인하는 다양한 방법

분류에서Dev

CSV 문자열에 주어진 값이 포함되어 있는지 확인 C #

분류에서Dev

jasmine : 배열에 주어진 속성을 가진 요소가 포함되어 있는지 확인

분류에서Dev

문자열에 특정 하위 문자열의 문자가 포함되어 있는지 확인하는 방법

분류에서Dev

배열의 모든 요소가 다른 배열 내부에 포함되어 있는지 확인

분류에서Dev

행렬에 숫자가 포함되어 있는지 확인

분류에서Dev

문자열에 사전의 하위 문자열 중 하나가 포함되어 있는지 Swift에서 확인

분류에서Dev

문자열에 단어 배열 (jquery, javascript)의 전체 단어가 포함되어 있는지 확인

분류에서Dev

요소가 두 개의 다른 배열에 포함되어 있는지 확인

분류에서Dev

문자열의 숫자에 C #의 유효한 연도가 포함되어 있는지 확인

분류에서Dev

문자열의 숫자에 C #의 유효한 연도가 포함되어 있는지 확인

분류에서Dev

2D 배열의 주어진 열에 0에서 n까지의 모든 특정 숫자가 포함되어 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

문자열에 배열이 포함되어 있는지 확인

분류에서Dev

숫자가 float 형을 포함하여 동일한 숫자 범위 내에 있는지 확인하는 방법

분류에서Dev

문자열에 숫자가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 주어진 단어가 포함되어 있는지 확인하려고합니다.

분류에서Dev

문자열에 주어진 단어가 포함되어 있는지 확인하려고합니다.

분류에서Dev

범위에 하위 문자열이 하나만 포함되어 있는지 확인하는 방법

분류에서Dev

숫자가 범위 내에 있는지 확인하는 PHP 함수

분류에서Dev

wordList에 Java 구문의 하위 문자열 중 하나가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 숫자 만 포함되어 있는지 확인

분류에서Dev

문자열에 그룹 내 문자가 포함되어 있는지 확인

Related 관련 기사

  1. 1

    VBA 배열에 범위의 문자열이 포함되어 있는지 확인하는 방법

  2. 2

    R-문자열에 특정 날짜 범위 내의 날짜가 포함되어 있는지 확인

  3. 3

    내 문자열에 배열의 요소가 포함되어 있는지 확인

  4. 4

    Aurelia e2e : div 내의 범위에 특정 텍스트가 포함되어 있는지 확인

  5. 5

    숫자의 문자열 배열에 기호가 포함되어 있는지 확인

  6. 6

    숫자에 수업 배정을위한 숫자가 포함되어 있는지 확인

  7. 7

    단어에 영숫자가 포함되어 있는지 확인

  8. 8

    주어진 목록에 숫자가 포함되어 있는지 확인하는 다양한 방법

  9. 9

    CSV 문자열에 주어진 값이 포함되어 있는지 확인 C #

  10. 10

    jasmine : 배열에 주어진 속성을 가진 요소가 포함되어 있는지 확인

  11. 11

    문자열에 특정 하위 문자열의 문자가 포함되어 있는지 확인하는 방법

  12. 12

    배열의 모든 요소가 다른 배열 내부에 포함되어 있는지 확인

  13. 13

    행렬에 숫자가 포함되어 있는지 확인

  14. 14

    문자열에 사전의 하위 문자열 중 하나가 포함되어 있는지 Swift에서 확인

  15. 15

    문자열에 단어 배열 (jquery, javascript)의 전체 단어가 포함되어 있는지 확인

  16. 16

    요소가 두 개의 다른 배열에 포함되어 있는지 확인

  17. 17

    문자열의 숫자에 C #의 유효한 연도가 포함되어 있는지 확인

  18. 18

    문자열의 숫자에 C #의 유효한 연도가 포함되어 있는지 확인

  19. 19

    2D 배열의 주어진 열에 0에서 n까지의 모든 특정 숫자가 포함되어 있는지 확인하는 방법은 무엇입니까?

  20. 20

    문자열에 배열이 포함되어 있는지 확인

  21. 21

    숫자가 float 형을 포함하여 동일한 숫자 범위 내에 있는지 확인하는 방법

  22. 22

    문자열에 숫자가 포함되어 있는지 확인하는 방법

  23. 23

    문자열에 주어진 단어가 포함되어 있는지 확인하려고합니다.

  24. 24

    문자열에 주어진 단어가 포함되어 있는지 확인하려고합니다.

  25. 25

    범위에 하위 문자열이 하나만 포함되어 있는지 확인하는 방법

  26. 26

    숫자가 범위 내에 있는지 확인하는 PHP 함수

  27. 27

    wordList에 Java 구문의 하위 문자열 중 하나가 포함되어 있는지 확인하는 방법

  28. 28

    문자열에 숫자 만 포함되어 있는지 확인

  29. 29

    문자열에 그룹 내 문자가 포함되어 있는지 확인

뜨겁다태그

보관