목록알고리즘 (13)
불로구
이진탐색 - 오름차순 or 내림차순으로 정렬되어있는 배열에서 검색하는 알고리즘 -> 7찾기 step 1) start center end 5 7 9 11 13 15 17 step 2) start center end 5 7 9 - 이진탐색을 시작(0), 중앙( (배열길이 - 1 / 2) ) , 끝( 배열길이 - 1)으로 나눈다. - 찾는 값이 중앙 값 보다 작다면 -> 시작(0), 끝( 중앙-1 ), 중앙 ( (배열길이 - 1 / 2) )가 되고 - 찾는 값이 중앙 값 보다 크다면 -> 시작(중앙+1) , 끝( 배열길이 -1 ), 중앙 (배열길이 -1/2)가 된다. 종료조건 - 1) 중앙값과 key가 일치 - 2) 검색 범위에서 찾지 못함 시간복잡도 - 반복마다 검색 범위가 반으로 줄어든다 - 평균 : lo..
선형 검색이란? - 요소가 직선 모양으로 늘어선 배열에서 원하는 키 값을 앞에서부터 끝까지 돌면서 찾는 검색 배열 인덱스 0 1 2 3 4 배열 요소 2 7 5 1 9 배열의 0번째 인덱스부터 -> 4번째 인덱스 까지 검색을 하는 것이다. 선형 검색의 종료 조건 1) 검색에 실패하고 배열의 끝을 지난 경우 - n+1회 2) 검색에 성공했을 때 - n회 -> 평균은 n/2회 코드 public class 선형검색 { static int seqSearch(int[] a, int n, int key) { int i=0; while(true) { if(i==n) return -1; if(a[i] == key) return i; i++; } // - for문 구현 - // int result = -1; //for(..
다차원배열이란 - 일반적으로 1차원 배열을 배웠을 것이다. -> int[] x = new int[5]; - 다차원 배열은 2차원 ~ n차원을 구성하는 배열이다. -> int[][] arr = new int[5][5]; - 앞에 5를 행, 뒤에 5를 열이라고 부른다. public class 다차원배열 { public static void main(String[] args){ int[][] x = new int[2][4]; x[0][1] = 37; x[0][3] = 54; x[1][2] = 65; for(int i=0; i