제 8 장 해싱
|
|
- 신영 용
- 5 years ago
- Views:
Transcription
1 제 8 장 해싱
2 개요 ADT 사전 (dictionary) 해싱 (Hashing) 정적해싱 (Static hashing) 동적해싱 (Dynamic hashing) 2
3 정적해싱 (1) 해시테이블 (1) 사전쌍들이해시테이블 ht 에저장 ht[0],, ht[b-1], 즉, b 개의버킷 (bucket) 으로분할됨 한버킷은 s 개의슬롯 (slot) 으로구성됨 한슬롯에는하나의사전쌍이저장됨 키값이 k 인한쌍의주소또는위치는해시함수 h 에의해결정됨 해시함수는키값을버킷으로사상시킴 h(k) : k 의해시또는홈주소 (home address) 사전쌍들은이상적인조건하에서는모두해당홈버킷 (home bucket) 에저장됨 3
4 정적해싱 (2) 해시테이블 (2) 정의 해시테이블의키밀도 (key density) 는 n/t 임 해시테이블의적재밀도 (loading density) 는 α = n/(sb) 임 n : 테이블에있는쌍의수 T : 가능한키의총개수 키밀도 n/t 는매우작고버킷수 b 도 T 보다작게됨 k 1 와 k 2 에대해 h(k 1 ) = h(k 2 ) 인경우 k 1 과 k 2 를 h 에대한동거자 (synonym) 라함 4
5 정적해싱 (3) 해시테이블 (3) 이상적인조건하에서, 사전쌍들은모두해당홈버킷에저장됨 오버플로 (overflow) 새로운사전쌍을삽입하려고할때, 홈버킷이차있는상태일경우 충돌 (collision) 새로운쌍의삽입시홈버킷에비어있는자리가없을경우 5
6 정적해싱 (4) 해시테이블 (4) b=26 개의버킷과 s=2 인해시테이블 n=10개, α =10/52 = 부터 25까지의숫자로사상시킴 GA와 G가같은버킷에있음 A와 A2가같은버킷에있음 A1을테이블어디에위치시켜야되는가? 6
7 정적해싱 (5) 해시테이블 (5) 오버플로가발생하지않을경우 삽입, 삭제, 탐색시간 사전의엔트리수인 n 에무관 해시함수의계산시간과한버킷을탐색하는데소요되는시간에만좌우됨 버킷크기 s 는작기때문에, 버킷내에서탐색을위해 순차탐색기법을사용할수있음 해싱기법 해시함수 h를사용하여키를해시테이블버킷에사상시킴 해시함수는충돌수최소화하도록선택해야함 오버플로처리하는기법이필요함 7
8 정적해싱 (6) 해시함수 (1) 키를해시테이블내의버킷으로사상시킴 계산이쉽고충돌이적어야함 균일해시함수 (uniform hash function) h(k) = i 가될확률은모든버킷 i 에대해 i/b 이됨 k = 키공간에서임의로선택된키 b 개의버킷각각에임의의 k 가대응될확률은모두같게됨 다양한종류의균일해시함수가사용됨 일부는산술적인연산을통해홈버킷을계산하지만, 많은응용에서산술적인연산을할수없는경우도있음 먼저키를정수와같이산술적인연산이가능한데이터타입으로변환한뒤에연산을수행함 8
9 정적해싱 (7) 해시함수 (2) 제산 (division) 함수 실제로가장많이쓰이는해시함수 키값이음이아닌정수라고가정 홈버킷은모드 (%) 연산자에의해결정 키 k 를정해진수 D 로나눈나머지를 k 의홈버킷으로사용 h(k) = k%d 버킷주소의범위 : 0 ~(D-1) 최소 b = D 개의버킷이있어야함 D 의선택이오보플로발생수에영향미침 D 의최소소인수의크기가증가하면편중정도는감수함 D 가홀수가되도록제한하고 b=d 배열의크기를두배로만들면버킷의수가 b 에서 2b+1 로증가됨 9
10 정적해싱 (8) 해시함수 (3) 중간제곱 (mid-square) 함수 키를제곱한후에버킷주소를얻기위해그결과의중간에있는적절한수의비트를취해서홈버킷을정함 키는정수라고가정함 제곱수의중간비트는그키의모든비트에의존하므로서로다른키들은서로다른해시주소를갖게될확률이높게됨 버킷주소를얻기위해사용되는비트의수는테이블크기에달려있음 r 개의비트가사용되면각값들의범위는 0 에서 2r-1 까지가됨 해시테이블의크기는 2 의제곱이되게선정 10
11 정적해싱 (9) 해시함수 (4) 접지 (folding) 함수 숫자로된키 k 를몇부분으로나누는데, 마지막부분을제외하고는모두길이가같음 각부분들을서로더하여 k 에대한해시주소만듦 두가지덧셈방식 이동접지 (shift folding) 마지막을제외한모든부분들을이동시킴 최하위비트가마지막부분의자리와일치하도록맞춤 서로다른부분들을더하여 h(k) 를얻음 경계접지 (folding at the boundaries) 키의각부분들을경계에서겹치게함 같은자리에위치한수들을더하여 h(k) 를얻음 11
12 정적해싱 (10) 해시함수 (5) 접지함수예제 k = , 길이가세자리인부분들로나눈다. P1 = 123, P2 = 203, P3 = 241, P4 = 112, P5 = 20 이동접지방법사용 : h(k) = = = 699 경계접지방법사용 : 먼저 P2 와 P4 를역순으로하여 302 와 211 을각각구한후다섯개의부분을더하여 h(k) = = 897 을구함 12
13 정적해싱 (11) 해시함수 (6) 숫자분석함수 (digital analysis) 정적파일 (static file) 과같은경우에유용함 각키를어떤기수 (radix) r을이용해하나의숫자로바꿈 이기수를이용해각키의숫자들을검사함 가장편향된 (skewed) 분산을가진숫자생략 남은숫자만으로해시테이블주소를결정함 13
14 정적해싱 (12) 해시함수 (7) 키를정수로변환 키를음이아닌정수로변환함 유일한정수로변환시킬필요없음 스트링을정수로변환하기 16- 비트정수로사상시킴 14
15 정적해싱 (13) 해시함수 (8) 키를정수로변환 ( 계속 ) C++ STL 은 T 타입의어떤개체를음이아닌정수 size_t 로변환시키는 STL 템플릿클래스 hash<t> 를특별히제공 15
16 정적해싱 (14) - 안전해시함수 (1) 컴퓨터보안분야의여러응용에사용되는해시함수 (ex) 메시지인증 (message authentication) 메시지 M 이보안되어있지않은채널을통해 A 에서 B 로전송될때, B 에서받은메시지가위조된것이아니라 A 에서전송된원본메시지라고신뢰할수있는방법 해시함수 h 를이용해메시지 M 의해싱값 h(m) 을더안전한경로로보냄 약한충돌저항 (weak collision resistance) M 과 h 에대해잘숙지하고있는악의있는사용자가 M 의동거자를쉽게찾지못하게하는해시함수를사용해야하는특성 16
17 정적해싱 (15) - 안전해시함수 (2) 단방향특성 (one-way property) h(k) =c 를만족하는 c 가주어졌을때, k 를찾는것을계산적으로어렵게만드는것 강한충돌저항 (strong collision resistance) h(x) = h(y) 를만족시키는 (x,y) 쌍을계산적으로찾기어렵게만드는것 암호화해시함수의추가적인특징 보안외에도실용적으로사용될수있도록가지는특성들 (1) h 는데이타블록크기상관없이적용가능해야함 (2) h 는고정길이의해시코드를만들어야함 (3) h(k) 는어떤 k 가주어져도계산이비교적쉬워서하드웨어와소프트웨어의구현이실용적이어야함 17
18 정적해싱 (16) - 안전해시함수 (3) 보안해시알고리즘 (SHA : Secure Hash Algorithm) 미국국립표준기술연구소 (NIST) 에서처음개발함 입력 : 2 64 비트보다적은길이의메시지가능 출력 : 160 비트길이의코드 1단계 : 어떤정수 q에대해메시지의길이가 q*512 비트가되도록전처리 (preprocess) 한다. 이때메시지의뒤에 0으로채워넣을수있다. 2단계 : 160-비트의출력버퍼, OB를초기화한다. 이버퍼는 5개의 32-비트레지스터 A, B, C, D, E로구성되는데, 여기서 A= , B=efcdab89, C= 98bdcfe, D= , E=c3d2e1f0 이다 ( 이값들은 16진수이다 ). 3단계 : for(int i=1; i<=q; i++){ B i = 메시지의 512 비트로이루어진 i번째블록 OB = F(OB, B i ); } 4단계 : OB를출력한다. SHA 알고리즘 18
19 정적해싱 (17) - 안전해시함수 (4) 19
20 정적해싱 (18) 오버플로처리 (1) 오버플로를처리하는방법 개방주소법 (open addressing) 선형조사법 (linear probing) 이차조사법 (quadratic probing) 재해싱 (rehashing) 임의조사법 (random probing) 체인법 (chaining) 20
21 정적해싱 (19) 오버플로처리 (2) 선형조사법 (1) 키값이 k 인새로운쌍하나를삽입할때 ht[h(k)+i]%b 의순서에따라해시테이블버킷검색 h : 해시함수, b : 버킷의수, 0<= i <= b 1 다채워지지않은버킷을만나면검색이끝나고새로운쌍이그버킷으로삽입됨 빈자리가있는버킷이없다면해시테이블이만원인것 테이블크기를늘려야함 적재밀도 = 0.75 와같은경계값을넘을때테이블크기늘림 해시테이블의크기를다시정할때 해시함수바꿔야함 모든사전엔트리들은새로커진테이블에다시사상되어야함 A A2 A1 D A3 A4 GA G ZA E L. Z 선형조사법에의한해시테이블 (26 개의버킷, 버킷당하나의슬롯 ) 21
22 정적해싱 (20) 오버플로처리 (3) 선형조사법 (2) S=1, 선형조사법으로오버플로처리하는경우, 키 k 를해시테이블에서탐색하는과정 (1) h(x) 계산 (2) 다음과같은경우중하나가발생할때까지 ht[h(k)], ht[(h(k)+1)%b],, ht[(h(k)j)%b] 순서로해시테이블버킷을조사 버킷 ht[(h(k)+j)%b] 에값이 k 인키쌍이있는경우 원하는쌍이발견되었음 ht[h(k)+j] 가비어있는경우 K 는테이블에없음 시작위치 ht[h(k)] 로돌아온경우 테이블은만원이고 k 는테이블에없음 22
23 정적해싱 (21) 오버플로처리 (4) 선형조사법 (3) template <class K, class E> pair<k,e>* LinearProbing <K,E>::Get(const K&k) {// 선형조사법해싱테이블 ht( 각버킷은한슬롯만가짐 ) 에서 k를탐색. // 이키를가진쌍을발견하면, 그쌍을가리키는포인터를반환. // 그렇지않으면 0을반환. int i = h(k); // 홈버킷 int j; for(j = i; ht[k] && ht[j] first!= k;) { j = (j+1) % b; // 테이블을원형으로간주 if(j == i) return 0; // 시작점으로복귀 } if (ht[j] first == k) return ht[j]; return 0; } 선형조사법 23
24 정적해싱 (22) 오버플로처리 (5) 선형조사법 (4) 선형조사법으로오버플로를해결하는경우 키들이클러스터 (cluster) 되는경향이있어탐색시간증가 균등해시함수와함께선형조사법을사용할경우 α 가적재밀도일때키를찾기위한평균키비교횟수의기대값 (2-α)/(2-2α) 이차조사법 (quadratic probing) 클러스터의크기를줄이기위해서이용 선형조사법에서는 b 가테이블에있는버킷의수라고할때 (h(k)+i)%b, 1 i b-1 인버킷을찾는반면이차조사법에서는 i 의이차함수가증분으로사용됨 0 i (b-1)/2 에대해 h(k), (h(k)+i2) % b, (h(k)-i2) % b 를검사하는방법으로탐색을수행 b 가 4j+3(j 는정수 ) 인형태의소수라면이차조사법에서는테이블의모든버킷을조사하면됨 24
25 정적해싱 (23) 오버플로처리 (6) 선형조사법 (5) 클러스터확대를줄이기위한다른방법 재해싱 (rehashing) 여러개의해시함수 h 1, h 2,..., h m 을사용하는방법버킷 h i (k) (0 i m) 를순서대로검사 임의조사법 (random probing) 형태가 4j+3 인몇가지소수들 25
26 정적해싱 (24) 오버플로처리 (7) 선형조사법과같은방법들이효율이좋지않은이유 키를탐색할때서로다른해시값을가진키와비교를해야하기때문 체인법 체인을사용할때 ChainNode <pair <K, E>>* 타입의배열 ht[0:b-1] 을이용 ht[i] 는버킷 i 에연결된체인중첫번째노드를가리킴 template <class K, class E> pair<k,e>* Chaining <K,E>::Get(const K&k) {// 체인으로연결된해시테이블 ht 에서 k 를탐색 // 이키를가진쌍을발견하면, 그쌍을가리키는포인터를반환 // 그렇지않으면 0 을반환 int i = h(k); // 홈버킷 // ht[j] 에서시작하는체인을탐색 for(chainnode <pair <K, E>>* current = ht[i]; current; current = current -> link) if(current->data.first == k) return ¤t->data; return 0; } 체인검색 26
27 정적해싱 (25) 오버플로처리 (8) 27
28 정적해싱 (26) 오버플로처리 (9) 체인법 ( 계속 ) 체인법을균일해시함수와함께사용할경우 검색이성공했을경우키의비교횟수기대치는 α 가적재밀도이고 n/b(b 는버킷의수 ) 일때평균적으로약 1 + α/2 임 해시테이블의성능은오버플로를처리하는방식에만좌우됨 키가편중적으로선택되어지는경향이있음 해시함수에따라해시테이블의성능도달라짐 체인법과함께제산함수를사용하면가장좋은성능가짐 성공적인탐색을위해필요한최악의경우에비교횟수 O(n) 체인이아니라균형탐색트리에저장하면 O(log n) 28
29 정적해싱 (27) 오버플로처리 (10) 오버플로기법의이론적평가 (1) 균형트리와같은상용기법보다성능이우수 최악의경우에는해싱의성능좋지않음 n 개의키를가진해시테이블에서의삽입, 탐색에 O(n) 시간이걸릴수도있음 체인방법의예상성능에대한확률적분석 ht[0:b-1] : 한개의슬롯으로된버킷 b 개를가진해시테이블 h : 치역이 [0,b-1] 인균일해시함수 n 개의키 k 1, k 2,..., k n 이해시테이블에저장 h(k 1 ), h(k 2 ),..., h(k n ) 과같은 b n 가지의서로다른해시순서가있을것 이들이균등한발생확률을가진다고가정 S n : 임의로선택된 k i (1 i n) 의주소확인에필요한예상키비교횟수 j 번째키인 k j 를찾는데필요한평균비교횟수 균등한확률로선택되는 j(1 i n) 와 b n 가지해시순서에따른비교횟수를평균한값 U n : 해시테이블에없는키를찾는데필요한예상비교횟수 29
30 정적해싱 (28) 오버플로처리 (11) 오버플로기법의이론적평가 (2) 체인방법의예상성능에대한확률적분석 ( 계속 ) ( 정리 8.1) a = n/b 가균일해시함수를사용한해시테이블의적재밀도라하자. (1) 선형개발주소법에대해 U n = ½ [1 + 1/(1-a) 2 ] S n = ½ [1 + 1/(1-a)] (2) 재해싱및임의조사법과이차조사법에대해 U n 1/(1-a) S n [1/a]log e (1-a) (3) 체인법에대해 U n a S n 1 + a/2 30
31 정적해싱 (29) 오버플로처리 (12) 오버플로기법의이론적평가 (3) 체인방법의예상성능에대한확률적분석 ( 계속 ) ( 증명 ) 검색하고자하는키 k 가 h(k)=i 이고체인 i 가 q 개의노드를가졌을경우 k 가체인에없으면 q 번의비교가필요 k 가그체인에서 j 번째노드에있다면 (1 j q), j 번의비교가필요 n 개의키가 b 개의체인에일정하게분산되어있을경우 각체인에있는키개수의기대값은 n/b=α Un 은체인에서의예상키수이므로 U n =α i 번째의키 ki 가테이블에들어갈때체인에서의예상키수 : (i-1)/b 결과 n 개의모든키가저장된후에 ki 를탐색하는데필요한예상비교횟수 : 1 + (i 1)/b 31
32 동적해싱 동적해싱 (dynamic hashing) 의배경 확장성해싱 (extendible hashing) 이라고도불림 재조정을한번할때마다오직하나의버킷안에있는엔트리들에대해서만홈버킷을변경하게하여재조정시간을줄임 하나의연산에대해좋은성능을유지할수있게함 해시함수의예 32
33 디렉터리를이용한동적해싱 (1) 디렉터리 (directory) 를이용한동적해싱 버킷들에대한포인터를저장하고있는디렉터리 d를이용 디렉터리의크기 : h(k) 의비트수에좌우됨 디렉터리깊이 (directory depth) 디렉터리를인덱싱하는 h(k) 의비트수 t : 디렉터리깊이, 2 t : 디렉터리크기 (ex) h(k,2) 를사용하여인덱싱 디렉터리의크기 = 2 2 =4 h(k,5) 를사용하여인덱싱 디렉터리의크기 = 2 5 =32 버킷수 < 디렉터리크기 33
34 디렉터리를이용한동적해싱 (2) 키 A0, B0, A1, B1, C2, C3 을포함하고있는동적해시테이블 (1) 깊이가 2 인디렉터리를사용 각버킷에는두개의슬롯 ( 색칠된것 디렉터리나머지 버킷들 ) 34
35 디렉터리를이용한동적해싱 (3) 키 A0, B0, A1, B1, C2, C3 을포함하고있는동적해시테이블 ( 계속 ) 키 k 를탐색하려면, t 가디렉터리깊이일때 d[h(k,t)] 가가리키는버킷을탐색해보기만하면됨 오버플로발생시해결방법 오버플로가된버킷의모든키에대해 h(k,u) 가같지않게하는 최하위비트 u 를정함 디렉터리크기는증가, 버킷개수는그대로임 디렉터리크기재조정후 h(k,u) 를사용하여오버플로가된버킷을분할 현재디렉터리깊이가 u 와같거나클때분할된버킷을가리키는다른 포인터들역시새로운버킷을가리키도록갱신되어야함 동적해싱은배열을두배로만드는방법을사용하지만정적해싱에서배열을두배로만드는것보다시간이적게걸림 오버플로가된버킷에있는엔트리들만재해싱하면되므로 35
36 디렉터리없는동적해싱 (1) 버킷포인터의디렉터리 d 대신버킷의배열인 ht 를사용 배열의크기는매우커서동적으로늘릴필요가없다고가정 q 와 r 이라는변수 (0 q<2 r ) 를두어활성화된버킷 (active bucket) 에대한정보를얻어냄 항상 0 부터 2r+q-1 까지의버킷만활성화됨 각활성버킷은버킷체인의시작이됨 오버플로버킷 (overflow bucket) : 체인의나머지버킷들 2r 부터 2r+q-1 까지의활성버킷뿐만아니라 0 부터 q-1 까지의활성버킷은 h(k, r+1) 을이용하여인덱싱 나머지활성버킷들은 h(k,r) 을이용하여인덱싱 각사전쌍들은활성버킷이거나오버플로버킷 36
37 디렉터리없는동적해싱 (2) r=2 이고 q=0 일때디렉터리가없는해시테이블 ht 그림 8.6의해시함수사용, 활성버킷개수 = 4 각활성버킷에는두개의슬롯 37
38 블룸필터 (1) 응용 차등파일 (1) 인덱싱된화일 (indexed file) 을관리하는응용 하나의인덱스와하나의키가있을때 밀집인덱스 (dense index) 이고, 화일의갱신이허용된다고가정 인덱스화일의백업사본을유지하는것이필요 마스터인덱스 (master index), 마스터화일 (master file) 인덱스파일의작업사본 트랜잭션로그 (transaction log) 장애회복을위해필요 백업사본과백업사본생성이후에만들어지는모든갱신로그 장애회복을위해백업사본과트랜잭션로그를처리하여장애당시작업사본의인덱스화일을재생해야함 회복시간 백업인덱스와화일크기, 트랜잭션로그크기의함수가됨 차등화일 (differential file) 인덱스가아니라화일만클경우 별도의화일에갱신된레코드를저장함으로써복구시간줄일수있음 38
39 블룸필터 (2) 응용 차등파일 (2) 39
40 블룸필터 (3) 응용 차등파일 (3) 차등화일을사용할때, 백업파일은마스터화일의복사본 인덱스, 화일, 트랜잭션로그상대적으로작음 빈번한백업가능함 한화일연산을수행할때필요한디스크접근횟수에는영향을주지않음 인덱스, 화일클경우 차등화일, 차등인덱스 (differential index) 로문제해결함 40
41 블룸필터 (4) 블룸필터설계 블룸필터 (Bloom filter) 내부메모리에상주하여 차등인덱스에키가있는가? 와같은유형의질의를허용하는장치 차등인덱스안에모든키의리스트를유지함 위와같은유형의질의에정확하게응답하지않음 no maybe 와 no 중에하나로응답 탐색키가차등인덱스에있지않다는것을보장 maybe 차등인덱스를탐색 41
42 블룸필터 (5) 필터오류가될확률 P(u) = (1-1/n) u (1-(1-1/m) uh ) h 근사값을사용하면 (1-1/x) q ~ e -q/x 큰값 x 에대해 P(u) ~ e -u/n (1-e -uh/m ) h h 에대해서 P(u) 를미분하고결과를 0 으로지정하면 h = (log e 2)m/u ~ 0.693m/u 42
쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table
쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.
More information4.1 관계
심볼테이블 사전 (dictionary) 철자검색기, 시소러스, 데이터베이스관리응용에서데이터사전 로더, 어셈블러, 컴파일러에의해생성되는심볼테이블 컴퓨터분야에서는심볼테이블이라는용어를사용 심볼테이블 이름 - 속성쌍의집합 C++ 에서 map words ; words[ time ] = 1 ; 시소러스는이름은단어, 속성은동의어 컴파일러는이름은식별자로,
More information14장.탐색
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 탐색 1/28 탐색 (search) 이란? 여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열,
More information8장직접화일 DBLAB, SNU v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이
8장직접화일 v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이가능 순차접근화일 u 직접화일의종류 인덱스된화일 (indexed file) 인덱스를이용해레코드를접근 인덱스된순차화일
More informationPowerPoint 프레젠테이션
제 6 장해시테이블 6.1 해시테이블 이진탐색트리의성능을개선한 AVL 트리와레드블랙트리의삽입과삭제연산의수행시간은각각 O(logN) 그렇다면 O(logN) 보다좋은성능을갖는자료구조는없을까? [ 핵심아이디어 ] O(logN) 시간보다빠른연산을위해, 키와 1 차원리스트의인덱스의관계를이용하여키 ( 항목 ) 를저장한다. [ 그림 6-2] 키를그대로 1 차원리스트의인덱스로사용
More informationMicrosoft PowerPoint Hash Structures.ppt
자료처리 () 2006 년봄학기문양세강원대학교컴퓨터과학과 임의접근파일 (Random Access File) 임의접근파일 (random access file) 임의의레코드에그레코드의키값을사용하여그키값을가지는레코드에랜덤하게 ( 직접적으로 ) 접근할수있는파일 (= 직접파일 (direct file), 직접접근파일 (direct access file)) 다른레코드를참조하지않고도,
More informationDiscrete Mathematics
자료처리 () 2005 년봄학기 문양세컴퓨터과학과강원대학교자연과학대학 임의접근파일 (Random Access File) 임의접근파일 (random access file) 임의의레코드에그레코드의키값을사용하여그키값을가지는레코드에랜덤하게 ( 직접적으로 ) 접근할수있는파일 (= 직접파일 (direct file), 직접접근파일 (direct access file))
More information쉽게배우는알고리즘 6 장. 해시테이블 Hash Table IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한
쉽게배우는알고리즘 6 장. 해시테이블 Hash Table http://academy.hanb.co.kr 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 - 2 - 한빛미디어 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information슬라이드 1
CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information제 11 장 다원 탐색 트리
제 11 장 다원탐색트리 Copyright 07 DBLB, Seoul National University m- 원탐색트리의정의와성질 (1) 탐색성능을향상시키려면메모리접근횟수를줄여야함 탐색트리의높이를줄여야함 차수 (degree) 가 2보다큰탐색트리가필요 m- 원탐색트리 (m-way search tree) 공백이거나다음성질을만족 (1) 루트는최대 m 개의서브트리를가진다.
More information7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬
7장인덱스된 순차화일 v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 레코드전체에대한순차접근을지원 u 인덱스화일 화일의레코드들에대한키값과포인터를저장 개별레코드에대한직접접근을지원 u
More information05 암호개론 (2)
정보보호 05 암호개론 (3) Hashing (1) dictionary symbol table in computer science application spelling checker thesarus data dictionary in database application symbol tables generated by loader, assembler, and
More informationPowerPoint Presentation
자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,
More informationMicrosoft PowerPoint - 알고리즘_11주차_2차시.pptx
5 Collision Resolution by Progressive Overflow Progressive Overflow Linear Probing 51 How Progressive Overflow Works 기본개념 Collision 발생할때, 이후빈공간에삽입 ( 그림 104) End of file 일경우, 처음부터다시검색 ( 그림 105) Circular
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationMicrosoft PowerPoint - 알고리즘_5주차_1차시.pptx
Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information03_queue
Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information³»Áö¼öÁ¤
Active Directory Active Directory Active Directory Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information2002년 2학기 자료구조
자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)
More informationMicrosoft PowerPoint - ch14 - Hash Map
2015-1 14. Hash Map 2015 년 6 월 1 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline Hashing 이란? 사전 (dictionary), map, table과해싱
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More informationMicrosoft Word - FunctionCall
Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information0. 들어가기 전
컴퓨터네트워크 13 장. 네트워크보안 (2) - 암호화시스템 1 이번시간의학습목표 암호화알고리즘인 DES, RSA 의구조이해 전자서명의필요성과방법이해 2 대칭키암호방식 (1) 암호화와복호화에하나의키를이용 공통키또는대칭키암호방식이라고지칭 이때의키를비밀키 (secret key) 라고지칭 3 대칭키암호방식 (2) 암호화복호화를수행하는두사용자가동일한키를가지고있어야함
More information1장 암호의 세계
SeoulTech 2012-1 st 현대암호학 제 13 장 PGP 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 13.1 주요내용 전자메일은우리가생각하는것만큼안전하지않다 암호학적인측면에서보면매우취약하다. 전자메일에대한인증과기밀성서비스가매우중요해졌다 두가지중요한전자메일 PGP(Pretty Good Privacy)
More informationSequences with Low Correlation
레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More information11. 텍스트를위한 화일 DBLAB, SNU 텍스트를위한화일 u 텍스트데이타로구성된문서 (documents) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전
. 텍스트를위한 화일 텍스트를위한화일 텍스트데이타로구성된문서 (docments) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전의용어, 인터넷사이트에대한설명정보 키워드 (keyword): 텍스트데이타에대한탐색키값 하나의레코드를식별하기위하여텍스트필드는여러개의키워드가사용될수있음.
More informationVector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표
Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationPowerPoint Presentation
Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationMicrosoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]
Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨
More information슬라이드 1
컬렉션프레임워크 (Collection Framework) 의정의 - 다수의데이터를쉽게처리할수있는표준화된방법을제공하는클래스들 - 데이터의집합을다루고표현하기위한단일화된구조 (architecture) - JDK 1.2 이전까지는 Vector, Hashtable, Properties와같은컬렉션클래스로서로다른각자의방식으로처리 - 컬렉션프레임워크는다수의데이터를다루는데필요한다양하고풍부한클래스들을제공하므로프로그래머의부담을상당부분덜어준다.
More informationMicrosoft PowerPoint - Java7.pptx
HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)
More informationC 언어 강의노트
C언어 (CSE2035) (15-1 Lists) Linear list 의구성, Insertion, deletion 윤용운, Ph.D. Dept. of Computer Science and Engineering Sogang University Seoul, Korea Tel: 010-3204-6811 Email : yuyoon0@sogang.ac.kr 2018-01-11
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1
장수의체계. 진수. 진수 3. 8진수와 6진수 4. 진법변환 5. 진정수연산과보수 6. 진부동소수점수의표현 진수 진수표현법 v 기수가 인수 v,,, 3, 4, 5, 6, 7, 8, 9 사용 9345.35 = 9 3 4 5 3. 5. = 9 3 3 4 5 3-5 - v 고대로마의기수법에는 5 진법을사용 v 진법의아라비아숫자는인도에서기원전 세기에발명 진법을나타내는기본수를기수
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More information본 강의에 들어가기 전
1 2.1 대칭암호원리 제 2 장. 대칭암호와메시지기밀성 2 3 기본용어 평문 (Plaintext) - original message 암호문 (Ciphertext) - coded message 암호화 (Cipher) - algorithm for transforming plaintext to ciphertext 키 (Key) - info used in cipher
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More information정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2
13. 탐색트리 AVL 트리, B- 트리, 2-3-4 트리 정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 이진탐색트리의예 3 BST 의최선과최악의경우
More informationComputer Architecture
정수의산술연산과부동소수점연산 정수의산술연산부동소수점수의표현부동소수점산술연산 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 3.5 정수의산술연산 기본적인산술연산들 2 2 3.5.1 덧셈 2 의보수로표현된수들의덧셈방법 두수를더하고, 만약올림수가발생하면버림 3 3 병렬가산기 (parallel adder) 덧셈을수행하는하드웨어모듈 4- 비트병렬가산기와상태비트제어회로
More information슬라이드 1
6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,
More informationPowerPoint 프레젠테이션
Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.
More informationMicrosoft PowerPoint - 6장 탐색.pptx
01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential
More information슬라이드 제목 없음
MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More information체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x
체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x m, b m 0 F, m > 0 에대해 f(x) = g(x)q(x) + r(x) 을만족하는
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More informationPowerPoint 프레젠테이션
탐색의효율 12 장. 탐색알고리즘 삽입, 삭제에우선하여탐색의효율을높이기위한알고리즘 학습목표 이진탐색, 보간탐색, 이진탐색트리등기본탐색방법의효율을이해한다. 기수탐색트리의두가지구현방법과효율을이해한다. 선형탐사, 제곱탐사, 이중해시의방법과효율차이를이해한다. 버켓, 별도체인등닫힌어드레싱방법을이해한다. 상황에따른자료구조선택방법을이해한다. 1 레코드, 키 Section
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information01장.자료구조와 알고리즘
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 자료구조와알고리즘 1/30 자료구조 일상생활에서자료를정리하고조직화하는이유는? 사물을편리하고효율적으로사용하기위함 다양한자료를효율적인규칙에따라정리한예 2/30 컴퓨터에서의자료구조 자료구조 (Data Structure) 컴퓨터에서자료를정리하고조직화하는다양한구조
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationMicrosoft PowerPoint - o8.pptx
메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)
More information<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>
25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ
More information9. 해시테이블
9. 해시테이블 해시테이블 자료구조의두가지접근패턴 : 순차접근, 직접접근 순차접근 (sequential access) 연결리스트에의해서제공 구조의한쪽끝에서시작해각원소를하나씩살펴보면서목표에도달하거나다른끝에도달할때까지탐색을진행 탐색알고리즘은선형시간에실행 예, 오디오테이프나비디오테이프의자료구조 직접접근 (direct access), 임의접근 (random access)
More information소성해석
3 강유한요소법 3 강목차 3. 미분방정식의근사해법-Ritz법 3. 미분방정식의근사해법 가중오차법 3.3 유한요소법개념 3.4 편미분방정식의유한요소법 . CAD 전처리프로그램 (Preprocessor) DXF, STL 파일 입력데이타 유한요소솔버 (Finite Element Solver) 자연법칙지배방정식유한요소방정식파생변수의계산 질량보존법칙 연속방정식 뉴톤의운동법칙평형방정식대수방정식
More information버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습
앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수
More informationMicrosoft PowerPoint 웹 연동 기술.pptx
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우
More informationFGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)
FGB-P8-3 8 학번수학과권혁준 8 년 5 월 9 일 Lemma p 를 C[, ] 에속하는음수가되지않는함수라하자. 이때 y C, C[, ] 가미분방정식 y t + ptyt, t,, y y 을만족하는해라고하면, y 는, 에서연속적인이계도함수를가지게확 장될수있다. Proof y 은 y 의도함수이므로미적분학의기본정리에의하여, y 은 y 의어떤원시 함수와적분상수의합으로표시될수있다.
More informationPowerPoint Template
SeoulTech UCS Lab 2013-2 st 암호이론및정보보호실무 제 9 장공개키암호 2013. 10. 14 강원민 Email: wkaqhsk0@seoultech.ac.kr 목차 1. 공개키암호시스템의원리 2. RSA 알고리즘 3. Diffie-Hellman 알고리즘 2 공개키암호시스템의원리 공개키암호시스템의원리 1. 암호화 / 복호화에사용되는키가서로다르다
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information(Microsoft PowerPoint - Ch19_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])
수치해석 6009 Ch9. Numerical Itegratio Formulas Part 5. 소개 / 미적분 미분 : 독립변수에대한종속변수의변화율 d vt yt dt yt 임의의물체의시간에따른위치, vt 속도 함수의구배 적분 : 미분의역, 어떤구간내에서시간 / 공간에따라변화하는정보를합하여전체결과를구함. t yt vt dt 0 에서 t 까지의구간에서곡선 vt
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More information