목록C,C++ 기초 및 자료구조 (27)
rueki
이진검색은 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘이다. 전제 조건은 이미 정렬이 되어 있다는 것이며, 선형 검색보다 좀 더 빠르게 검색할 수가 있다. 5 7 15 28 29 31 39 58 68 70 95 위의 배열에서 원소 39를 찾는 과정을 생각해볼 때, 처음으로 중앙에 위치한 요소인 31 부터 검색을 시작한다. 39는 31보다 큰 값이므로, 31이 위치한 인덱스보다 뒤에 원소가 있다는 것을 알 수가 있다. 39 58 68 70 95 그러면 범위는 39의 위치인 a[6] 부터 a[10] 까지로 좁힐 수가 있다. a[6] 에서 a[10] 의 중간 값인 a[8]의 68을 검색하게 되고 찾고자 하는 값 39는 68보다 작기에, a[6] ~ a[8] 에 위치하는 것을 볼 수가 있..
배열에서 검색하는 방법중에 가장 기본이 되는 알고리즘으로써, 직선 모양의 배열에서 원하는 키 값을 갖는 요소를 만날 때 까지 앞부터 순서대로 요소를 검색하는 것이다. 값 2를 선형 검색을 해보자 6 4 3 2 1 3 8 6 4 3 2 1 3 8 6 4 3 2 1 3 8 6 4 3 2 1 3 8 위와 같은 배열이 있을 때, 6->4->3->2 순으로 검색을 하게 된다. 원하는 값을 찾을 때까지 모든 원소를 탐색하는 것이다. 그러나 원하는 요소가 없는 경우에는 끝까지 검색을 수행해도 값이 나오지 않게 될 것이다. 이로써, 선형 검색의 종료 조건은 아래와 같다. 1. 검색할 값을 발견한 경우 2. 배열 끝까지 검색해도 검색할 값을 찾지 못 한 경우 선형 검색을 구현해보자. #define _CRT_SECURE_..
구조체 : 임의의 데이터를 다시 조합하여 만드는 자료구조 개인의 데이터를 같은 인덱스 욧에 저장하도록 프로그램에서 관리하는 것은 어렵다. 사람의 키와 시력 데이터를 가지고 예를 들어보자 이름 몸무게 시력 박현규 162 0.3 함진아 173 0.7 최윤미 175 2.0 이수진 168 0.4 이름 , 몸무게, 시력의 열이 각각 하나의 배열로 구성되어 있다고 생각해보자. 이럴 때 각각의 배열에 접근을 해서 원소를 하나씩 빼내야하는 경우가 발생할 것이다. 박현규에 대한 몸무게와 시력을 알고 싶은데, 몸무게 배열과 시력 배열에 접근을 해서 가져와야 한다. 그래서 나온 것이 구조체 (Structure) 이다. 임의의 자료형의 요소를 조합하여 다시 만든 자료구조로서 구조체 선언에 대해 코드를 통해 보자. //구조체 ..