package study01;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

/*3. 0 ~ 1000사이의 100개의 임의의 정수를 배열에 저장합니다
Arrays.sort 메서드로 오름차순 정렬을 합니다
2진검색 알고리즘을 구현한 메서드를 구현해서 사용해보세요
*/
public class AhnHomework03_3 {
	
	static Scanner sc = new Scanner(System.in);
	
	public static void binarySearch(int arr[]){
				
		System.out.println("탐색할 숫자 입력 : ");
		int num = sc.nextInt();
		
		int mid;
        int left = 0;
        int right = arr.length - 1;
        
        while (right >= left) {
            mid = (right + left) / 2;

            if (num == arr[mid]) {
                System.out.println(num + " index value: " + mid);
                break;
            }

            if (num < arr[mid]) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }

	}
	public static void main(String[] args) {

		Random rd = new Random();
		int[] arr = new int[100];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = rd.nextInt(1000);
			System.out.print(arr[i] + "  ");
		}
		System.out.println();		
		Arrays.sort(arr);	//오름차순 정렬	
		
		for (int i = 0; i < arr.length; i++) {			
			System.out.print(arr[i] + "  ");
		}
		
		System.out.println();
		binarySearch(arr);
			
	}
}

'etc.. > 2' 카테고리의 다른 글

링크드 리스트 in java  (0) 2020.01.16
피보나치 수열 재귀 예제  (0) 2020.01.15
200114_별출력  (0) 2020.01.14
200113_버블정렬  (0) 2020.01.13

+ Recent posts