본문 사람들은 항상 무엇인가를 찾는다. 예를 들면 출근할 때 입을 옷을 찾는다거나 서랍 속의 서류를 찾기도 한다. 컴퓨터에서도 마찬가지로 탐색은 가장 많이 하는 작업 중의 하나다. 간단히 사람들이 하루에 인터넷에서 필요한 자료들을 얼마나 탐색(검색)하는지를 생각하면 된다. 이러한 탐색 작업은 컴퓨터 프로그램이 가장 많이 사용하는 작업임과 동시에 많은 시간이 요구되므로 탐색을 효율적으로 수행하는 것은 매우 중요하다. 탐색은 기억 장치에 저장된 파일에서 주어진 조건에 맞는 자료를 찾는 작업이다. 탐색을 하기 위해서는 자료들을 저장할 때 탐색할 수 있도록 저장되어야 하며 탐색 방법도 적절해야 한다. 탐색을 하기 위한 자료는 여러 가지 의미가 있는 값들인 필드(field)가 모여 레코드를 이루고 레코드들은 파일이 되고 파일이 모여 데이터 베이스(data base)를 만든다. 또한 하나의 레코드는 다른 레코드와 구별되게 하는 값이 있는데 이 값을 키(key)라 한다. 그러므로 탐색은 특정 키를 지정하여 자료 중에서 같은 키를 갖는 자료를 골라내는 것이다. 수행 위치에 따른 분류와 검색 방식에 따른 분류로 나눌 수 있는데 수행 위치에 따른 분류는 내부 탐색과 외부 탐색으로 나누어진다. 내부 탐색은 메모리 내의 자료에 대해서 탐색을 수행하는 것을 말하고, 외부 탐색은 보조 기억 장치에 있는 자료에 대해서 탐색을 수행하는 것을 말한다. 탐색 방식에 따른 분류에는 비교 탐색 방식과 계산 탐색 방식이 있다. 비교 탐색 방식은 탐색 대상의 키를 비교하여 탐색하는 방법으로 선형 탐색, 이진 탐색, 트리 탐색이 있다. 계산 탐색 방식은 계수적인 성질을 이용한 계산으로 탐색하는 방법이다. 선형 탐색 선형 탐색은 순차 탐색이라고도 하며 아주 고전적이고 단순한 형태의 데이터 탐색 방법으로 주요 요소를 키(key)로 하고 이 키와 배열 내의 모든 요소를 연속적으로 비교하여 검색하는 방법이다. 배열 요소와 키가 일치할 때까지 또는 일치되는 요소가 찾아지지 않은 채로 배열의 끝에 다다를 때까지 함수는 탐색을 계속한다. 일치하는 요소가 발견이 되면 선형 탐색은 키와 일치하는 배열 요소의 인덱스를 반환하고, 탐색에 실패하면 -1을 반환한다. 선형 탐색은 탐색 알고리즘 중에서 가장 간단한 검색 알고리즘이다. 구현하기 가장 쉬우며, 데이터의 개수가 작으면 더욱 효과적인 알고리즘이다. 만약 탐색 대상이 되는 파일이 정렬이 되어 있지 않다면 파일의 처음부터 끝까지 모두 비교를 해야 한다. 단순하게 처음부터 끝까지 검색하는 방식이므로 값이 있을 때나 없을 때나 검색하려는 값이 맨 마지막에 있다면 그 시간은 데이터의 개수만큼 걸리게 된다. 찾으려는 값이 데이터의 맨 마지막에 있는 경우에는 어떠한 알고리즘보다도 엄청난 시간 소모가 발생하게 될 수 있다. 그래서 큰 배열에는 적합하지 않은 방식이다. 그러나 정렬이 되어 있는 경우는 탐색 조건보다 큰 키 값 이후에는 찾는 레코드가 없으므로 탐색을 중단한다. 이러한 면에서만 단점이 존재하고 우리가 입력하거나 일정한 기준 안의 개수의 데이터가 존재한다면 그 데이터에 한해서는 가장 최고의 성능을 보여줄 수 있다고 볼 수 있다. 정렬되지 않은 배열에서의 선형 탐색 첫 번째 요소부터 시작하여 마지막 요소까지 순서대로 키 값이 일치하는 요소가 있는 지를 비교하여 찾는다. 키 값이 일치하는 요소를 찾으면 그 요소가 몇 번째 원소인지를 반환한다. 하고 싶은 말 좀 더 업그레이드하여 자료를 보완하여, 과제물을 꼼꼼하게 정성을 들어 작성했습니다. 위 자료 요약정리 잘되어 있으니 잘 참고하시어 학업에 나날이 발전이 있기를 기원합니다 ^^ 구입자 분의 앞날에 항상 무궁한 발전과 행복과 행운이 깃들기를 홧팅 키워드 이진탐색, 이진, 프로그래밍 |
2018년 1월 5일 금요일
프로그래밍- 선형탐색과 이진탐색
프로그래밍- 선형탐색과 이진탐색
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기