Eggs Sunny Side Up
본문 바로가기
언어/JAVA

Sequential Search(순차탐색)과 Binary Search(이진탐색)

by guswn100059 2023. 3. 4.

1. Sequential Search(순차탐색)

쉬운 코드를 작성할 수 있지만 찾고 싶은 값을 일일이 입력해야하기 때문에 비효율적!

package 이차원배열;

import java.util.Arrays;

public class Ex_연습장 {

	public static void main(String[] args) {

		int[] array = { 13, 35, 15, 11, 26, 72, 78, 19, 61, 90 };

		// 찾고싶은 데이터
		int search = 78;
		
		for(int i = 0; i < array.length; i++) {
			if(search == array[i]) {
				System.out.println(search+"는 "+i+"번째 인덱스입니다.");
				break;
			}
		}
	}

}

 

2. Binary Search(이진탐색)

package 이차원배열;

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

public class Ex_연습장 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in); 

		int[] array = { 1, 7, 16, 25, 30, 33, 41, 56, 78, 90 };

		// 찾고싶은 데이터
		System.out.print("데이터 입력 >> ");
		int search = sc.nextInt();
		
		int highIndex = array.length;
		int lowIndex = 0;
		
		
		while(true) {
			
			// 데이터가 많을수록 중간 배열값을 기준으로 두기!
			int midIndex = (highIndex + lowIndex) / 2; // 4
			
			if(search == array[midIndex]) {
				System.out.println(search+"는"+midIndex+"번째 인덱스입니다.");
				break;
			} else if(search > array[midIndex]) {
				lowIndex = midIndex;
			} else {
				highIndex = midIndex;
			}
		}
		
	}

}

'언어 > JAVA' 카테고리의 다른 글

메소드_덧셈 뺄셈 나눗셈 곱셈이 가능한 메소드 작성  (0) 2023.03.04
메소드_변수와 리턴의 존재여부  (0) 2023.03.04
SelectionSort (선택정렬)  (0) 2023.03.04
BubbleSort (버블정렬)  (0) 2023.03.03
치환  (0) 2023.03.03

댓글