이진탐색
[알고리즘] binarySearch 이진탐색, 재귀이진탐색_분할과 정복 (pseudo-code 파이썬, Java)
이진탐색 오름차순으로 정렬되어 있는 리스트(배열)에서 찾고자 하는 원소 item 의 위치를 찾을 때, 리스트(배열)에서 중간지점을 구한 후, item 값과 비교하여, item 값이 중간지점보다 작으면, 왼쪽부분에서 다시 중간지점을 찾아서 비교하여, 탐색하고, 크면 오른쪽부분에서 탐색한다. 중간지점과 item 과 값이 같으면 인덱스를 반환한다. Pseudo-code Algorithm binarySearch(A, item, n) left = 0 right = n-1 while (left right return -1 : item이 없을 경우 -1 반환 else mid = (left + right) / 2 : 2로 나눈 몫을 구하는 연산 if (item == A[mid]) return mid else if (i..
[python] (알고리즘) binarySearch (이진탐색) 구현
binarySearch (이진탐색) 구현 코드 #이진탐색 data = [2, 11, 19, 27, 30, 31, 45, 121] n = int(input('검색할 데이터를 입력하세요: ')) l = 0 #검색할 데이터 리스트의 첫번째 인덱스 h = len(data)-1 #검색할 데이터 리스트의 마지막 인덱스 count = 0 #검색 비교 횟수 isFlag = False #데이터 검색의 성공 여부 while(l data[m]: l = m + 1 elif n < data[m]: h = m - 1 #count 위치 유의 count += 1 # 비교횟수를 증가 print("{} 번 비교했습니다".format(count)) if isFlag: print("검색 완료!, 입력된 데이터 {}의 인덱스는..