• 검색 결과가 없습니다.

01. 해시 탐색법 개념 이해하기

N/A
N/A
Protected

Academic year: 2022

Share "01. 해시 탐색법 개념 이해하기"

Copied!
13
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

2018-2-WKU-A-A06 / p. 1

강의공개 11 A06. 해시 탐색법

알고리즘

• 원광대학교 컴퓨터소프트웨어공학과

• 2018학년도 2학기 월5수12+화5목12+화6수34

• 알고리즘 / 374015-01+02+03

2018-2-WKU-A-A06 / p. 2

• 해시 탐색법

• 01. 해시 탐색법 개념 이해하기

• 02. 해시 함수로 데이터를 보관하는 알고리즘

• 03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

목차

(2)

2018-2-WKU-A-A06 / p. 3

• Point

• 해시 탐색법은 데이터를 찾는 탐색 알고리즘 중 하나다.

• 탐색하기 쉽게 미리 함수를 사용하여 데이터를 보관해 둔다.

• 보관하는 데 사용한 함수를 사용하여 한 번에 데이터를 탐색한다.

01. 해시 탐색법 개념 이해하기

2018-2-WKU-A-A06 / p. 4

• 해시 탐색법의 특징

• 해시 탐색법은 데이터의 ‘내용’과 저장한 곳의 ‘요소’를 미리 연계

• 극히 짧은 시간 안에 탐색

• 아이디어 (1차)

• 데이터를 데이터와 같은 첨자의 요소에 저장 후 한 번에 탐색

• 24인 데이터는 첨자 24의 요소에 넣음

• 36인 데이터는 첨자 36의 요소에 넣음

•  낭비 증가

• 아이디어 (2차)

• 효율성을 높이기 위해 데이터에 일정한 계산을 실시

• 계산 결과값과 같은 첨자를 가진 요소에 보관

• ‘데이터÷12의 첨자를 갖는 요소에 저장하는’ 식으로 정해두면

• 24는 첨자가 2인 요소에 들어감

• 36은 첨자가 3인 요소에 들어감

•  낭비 감소

01. 해시 탐색법 개념 이해하기

(3)

2018-2-WKU-A-A06 / p. 5

• 해시 탐색법의 개념

• 해시• = 잘게 썬다 = 잘게 자른다

• 함수• 어떤 값에 해당하는 다른 값이 산출되는 계산식

• 해시 함수

• 어떤 값이 주어진 경우, 그 값을 대표하는 숫자를 계산하는 함수

• 해시값: 해시 함수의 계산으로 산출된 값

• 예. 해시값: 공을 넣을 칸의 번호

• 장점• 미리 해시 함수를 사용하여 데이터를 저장하는 장소를 정해 두어 검색 시간을 단축

01. 해시 탐색법 개념 이해하기

2018-2-WKU-A-A06 / p. 6

• 해시 탐색법의 알고리즘 구성

• 해시 탐색법을 실현하려면 데이터의 저장 및 검색, 즉 2개의 알고리즘이 필요

• ① 해시 함수로 데이터를 저장하는 알고리즘

• ② 해시 함수로 데이터를 검색하는 알고리즘

01. 해시 탐색법 개념 이해하기

(4)

2018-2-WKU-A-A06 / p. 7

• 미리 탐색하기 쉽도록 공을 보관한다.

01. 해시 탐색법 개념 이해하기

2018-2-WKU-A-A06 / p. 8

• 해시 탐색법으로 공을 찾기

01. 해시 탐색법 개념 이해하기

(5)

2018-2-WKU-A-A06 / p. 9

• Point

• 해시 함수는 데이터의 저장소의 첨자를 계산하는 데 사용한다.

• 저장소의 첨자가 겹치는 것을 ‘충돌’이라고 한다.

• 충돌이 발생하면 옆의 빈 요소에 데이터를 보관한다.

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 10

• 배열을 2개 준비한다

• 일반 검색 알고리즘에서는 배열의 요소를 데이터 수만큼 준비하면 충분

• 해시 탐색법은 이와 달리 저장하는 데이터의 1.5 ~ 2배를 준비

02. 해시 함수로 데이터를 보관하는 알고리즘

(6)

2018-2-WKU-A-A06 / p. 11

• arrayD[0]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 12

• arrayD[1]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

(7)

2018-2-WKU-A-A06 / p. 13

• arrayD[2]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 14

• arrayD[2]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

(8)

2018-2-WKU-A-A06 / p. 15

• arrayD[3]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 16

• arrayD[4]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

(9)

2018-2-WKU-A-A06 / p. 17

• arrayD[5]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 18

• arrayD[6]의 데이터를 arrayH에 저장하기

02. 해시 함수로 데이터를 보관하는 알고리즘

(10)

2018-2-WKU-A-A06 / p. 19

• 순서도 완성

02. 해시 함수로 데이터를 보관하는 알고리즘

2018-2-WKU-A-A06 / p. 20

• 의사 언어 완성

02. 해시 함수로 데이터를 보관하는 알고리즘

(11)

2018-2-WKU-A-A06 / p. 21

• Point

• 데이터 탐색에는 저장할 때 사용한 것과 같은 해시 함수를 사용한다.

• 탐색 데이터가 존재하지 않을 경우의 처리를 잊지 않고 기술한다.

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

2018-2-WKU-A-A06 / p. 22

• 탐색 대상이 되는 배열

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

(12)

2018-2-WKU-A-A06 / p. 23

• 12가 저장되어 있는 요소를 검색하기

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

2018-2-WKU-A-A06 / p. 24

• 36이 저장되어 있는 요소 검색하기

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

(13)

2018-2-WKU-A-A06 / p. 25

• 검색하고 있는 데이터가 배열에 존재하지 않을 경우

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

2018-2-WKU-A-A06 / p. 26

• 의사 언어 완성

03. 해시 탐색법으로 데이터를 탐색하는 알고리즘

참조

관련 문서

지극히 중요한 것이라고 할 수 있는 것은? 정답) CTQ(Critical To Quality) 9. 의심이 되는 문제의 원인을 나열 나. 하나의 Unit에 존재하는 모든 Defect의 수는?

z 해시 테이블 z 해시 함수 z 충돌 해결. z 해시 테이블에서의

낱말과 연상되는 관습적 의미는 언어적 개념 (linguistic concept)이나 어휘적 개념(lexical concept)으로서 이것은 언어로 부호화되기 위해 개념적 구조가

미술의 비물질화: 행위, 사상, 아이디어를 예술로 플럭서스, 행위예술(퍼포먼스), 설치미술, 대지미술.. 1960년대말, 모더니즘을 비평적으로 점검하려는 자의식적이고

– 사용자가 외부 스키마 (뷰)를 참조하여 데이터를 요구하면 이를 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로의 변환 과정을

사회지향적 마케팅 개념 (social marketing concept).. 시장

■ WTP는 소비자의 선호와 부를 나타낸다.

이차 개념(다른 개념에서 추상된 개념).. 수학 기초 체계와 표기를 적절한 수학적 아이디어와 관 련 짓는 능력.. 즉, 받아들이기가 관계적 이해보다 수월.. • 직관적