<B0E8BBEABCF6B7D05FC7C1B7CEC1A7C6AEC3D6C1BEBAB8B0EDBCAD5FB1E8C1F8C0CF2E687770>

Size: px
Start display at page:

Download "<B0E8BBEABCF6B7D05FC7C1B7CEC1A7C6AEC3D6C1BEBAB8B0EDBCAD5FB1E8C1F8C0CF2E687770>"

Transcription

1 계산수론프로젝트최종보고서 (Subject: A Survey on Index Data Structures) 소속 : 전기 컴퓨터공학부학번 : 성명 : 김진일 1. 개요 (Introduction) (1) Index의정의컴퓨터공학에서 'index' 라는단어는여러가지중의적인의미로사용되는데그중대표적인의미들을꼽자면 1 배열의원소를나타내는정수, 2 데이터에대한접근 (lookup) 을빠르게하는자료구조, 3 검색엔진에서정보를빠르게추출하기위한과정등이있다. 이프로젝트에서는 index의의미를두번째의미로한정하여다양한 index 자료구조에대하여다량의데이터가주어진경우각각의 index가이데이터들을어떻게저장하고접근하며갱신해나가는지에대하여다루고자한다. [1, 2] (2) Index의평가기준 Index는다양한기준을통하여평가할수있는데대상이되는데이터의타입이고정된경우원하는데이터에접근하는시간 (lookup time), 새로운데이터가추가되거나기존데이터가삭제되는경우 index를갱신하는시간 (update time), index에데이터를무한히넣을때 index가어느정도까지좋은성능을보이는지 (scalability) 등을비교하여평가할수있다. 여기서는데이터타입별로 select, insert, delete 연산의수행시간을 asymtotic하게평가하여다양한 index들을비교하도록하겠다. 그리고필요한경우실제구현상에서나타날수있는문제점에대해서도함께설명하겠다. (3) Index의종류 Index는자료구조가저장되는위치에따라크게 in-memory index와 external index로구분할수있다. In-memory index는 index의모든정보가 word 단위 ( 혹은 byte 단위 ) 로접근가능한 memory에저장되는 index를의미하고 external index는 index의대부분의정보가 block 단위 ( 보통수천 byte에서수백만 byte) 로접근가능한 disk에저장되는 index를의미한다. 보통 memory의속도가 disk의속도에비해매우빠르므로 in-memory index는 index의연산시간 (CPU 연산의 time complexity) 를중심으로평가하는반면 external index 는 disk I/O 횟수를중심으로 index의성능을평가한다. 그러므로같은 idea에의해구성된 index라도구현되는위치에따라다른형태를띄게된다. 일반적으로 external index가더 general한가정에서동작하므로더복잡한형태를가진다. (4) 프로젝트의목적과범위이프로젝트에서는 index 자료구조에대한개요를전달하고자주사용하는 index에대하 - 1 -

2 여간단하게소개하는것이목적이다. 그러므로각각의 index에대하여자세하게설명하기보다는 index의기본아이디어와특징을간단하게소개하고상황에맞게 index를사용할수있도록 index의성능을정리하고자한다. Index를구성하는기본아이디어에있어서는 in-memory index와 external index에큰차이가없으므로여기서는 in-memory index를대상으로가장자주쓰이는수치데이터 (numeric data) 에대한 index를중심으로설명하고부가적으로문자열데이터 (string data), 다차원데이터 (multi-dimensional data) 에대한대표적인 index를소개하도록하겠다. (5) 보고서구성먼저 2장에서는배경지식으로 time complexity 분석기법중한가지인 amortized analysis에대하여설명한다. 그리고 3장에서수치데이터에대한다양한 index들을간략하게소개하고 4장에서문자열데이터와다차원데이터에대한대표적인 index를소개한다. 5 장에서보고서내용을정리하면서결론을내린다. 그리고 6장은참고문헌의리스트이다. 2. 배경지식 (Amortized Analysis) 어떤알고리즘이내부에특정오퍼레이션을반복적으로수행하는경우해당알고리즘의최악의시간은각각의오퍼레이션이최악수행시간에오퍼레이션호출횟수를곱하면계산할수있다. 그런데때때로이와같은분석결과가정확한최악수행시간을계산하지못하고수행시간을과장하여예측하게되는측면이있는데이와같은경우시간복잡도를분석하는기법이 amortized analysis 기법이다. [1] 좀더구체적으로말하자면 amortized analysis는어떤 operation의 sequence를분석하기위한테크닉으로 operation의 sequence에대해 tight한 bound를계산하는방법이다. Amortized analysis는분석결과로최악의 operation sequence에대한 operation 1회의평균적인 cost를계산하게되는데이를 amortized cost라고한다. Amortized cost는평균값의일종이지만입력의분포와는무관하므로확률과무관한 최악 operation sequence에대한평균 operation cost' 임을유의하자. Amortized analysis의한예로 stack에일반적인 push, pop과한꺼번에 k개의원소를 pop할수있는 multi-pop 연산을정의한 multi-pop stack을생각해보자. Push와 pop은 시간에수행할수있는반면 multi-pop은 시간을필요로한다. 개의원소가 multi-pop stack에들어있는경우 이면 multi-pop은최대 시간을사용할수있다. 이때 번의 operation을수행하는경우최악의경우수행시간을 로분석할수있다. 그러나보다정확하게분석하면이경우최악의경우에도 시간에모든연산이수행될수있음을증명할수있으므로 [1] multi-pop 연산의 amortized cost는 이라고할수있다. 3. 수치데이터에대한 index 수치데이터에대한 index의수행시간은 index에저장된데이터의개수를 이라고할때 에대한함수로표현할수있다

3 (1) Array a) Naive array 수치데이터를저장할수있는가장간단한형태는데이터를 array에임의의순서로저장하는것이다. 이경우 select는 linear scan으로 시간, insert는끝에추가하여 시간, delete는삭제할원소를 linear scan으로찾은후 array 원소들을한칸씩이동하여 시간에동작할수있다. 이경우데이터가많은경우에는 select, delete 연산을수행할때마다긴시간이소요되므로사용하기적절하지않다. 그림 1. Naive array 예제 b) Sorted array 데이터가고정된경우 array를 sorted order로유지하는것만으로도상당한효과를얻을수있다. 일단데이터를 시간에걸쳐서한번 sorting하고나면 binary search를통하여 select를 시간에수행할수있다. 그러나 insert, delete는데이터 shift가필요하므로 시간을필요로하여데이터가자주 update되는경우비효율적이다. 그림 2. Sorted array 예제 c) Dynamic table 실제구현에서 array를사용하는경우 array의크기를할당할때미리결정해야하므로최종적으로들어가게되는원소의개수를모르는경우구현자가적절한크기를미리예상하여할당해야하는불편함이있다. 이경우구현자의예상보다현저히적은수의데이터가들어오는경우공간을비효율적으로사용하게되고예상보다많은수의데이터가들어오는경우프로그램이비정상적으로동작하게된다. 이경우사용할수있는기법중한가지가 dynamic table이다. [1] Dynamic table은처음에작은크기의 array를할당하여사용하다가 array가가득차게되면 2배의크기의 array를새로할당한다음원래 array에서새 array로데이터를복제하고원래 array의메모리를해제하는방법이다. Naive array에 dynamic table 기법을적용하면 insert를반복할때메모리확장이나타나는시점에일시적으로 시간을필요로하지만 insert sequence의평균을취하면 (amortized cost) 시간에수행할수있다. 그러므로 dynamic table은메모리를실제사용량의 2배이내로항상유지하면서 cost는 amortized하게그대로유지하는좋은기법이라고할수있다. Dynamic table은 C++ STL의 vector나 Java의 ArrayList class에구현되어있으므로쉽게사용할수있다. (2) List 데이터를저장하는또다른간단한기법으로 linked list가있다. Linked list는각각의원소를 node에저장하고 node들을포인터로서로연결하여저장하는기법이다. Array와달리실제데이터가들어올때마다메모리를할당하여확장할수있고가운데원소를추가하거나삭제하는데 시간이걸리므로유연한자료구조라고할수있다. 그러나데이터를 - 3 -

4 sorting하여도 linear scan을피할수없으므로 select에 시간, insert ( 맨마지막에추가 ) 시간, delete 시간으로느리다는단점을가진다. 그림 3. List 예제 (3) Search Tree Search tree는 sorting된 array가 시간에빠르게데이터에접근하는특성과 list가데이터의추가 / 삭제를빠르게수행할수있는장점을결합한자료구조이다. a) Binary Search Tree (BST) Binary search tree는 [ 그림 4] 와같은형태의자료구조로 tree 형태로구성되어각각의 node마다한원소를가지는데각각의 node의왼쪽 subtree에는 node가저장한값보다작은값들이저장되고오른쪽 subtree에는 node 값보다큰값들이저장되는자료구조이다. 그림 4. Binary Search Tree 예제. 오른쪽은 node 10 을삭제한후이다. 그림 5. Binary Search Tree 의최악의경우 BST에서 select와 insert는 root로부터 leaf에도달할때까지찾고자하는값과 node의값을비교하여작으면왼쪽 node, 크면오른쪽 node로진행하면쉽게수행할수있다. Delete는삭제되는 node를대신할 node를찾아대체하면된다. BST는 tree의높이가 이면 select, insert, delete를모두 시간에수행할수있으므로평균적으 - 4 -

5 로 수행시간을가지는자료구조이다. 그러나 [ 그림 5] 와같이최악의경우에는 BST가 linked list와같은모습으로퇴화하여모든연산이 시간이걸리게될수있다는문제점을가지고있다. b) Balanced Search Tree Balanced search tree는 BST가최악의경우 unbalanced 단점을보완한 search tree로 tree의높이를자동으로조정해주는특징이있다. Balanced search tree는 1962년 Adel'son과 Velskii, Landis가제안한 AVL tree가처음제안된이래 1970년 Hopcroft에의해제안된 2-3 tree, 1972년 Bayer와 McCreight에의해제안된 B-tree, 그리고역시 1972 년 Bayer에의해제안된 red-black tree, 그리고 1993년 Andersson에의해제안된 AA-tree로발전되어왔다. [2] 처음제안된 AVL tree는각각의 node가높이정보를가지고오퍼레이션중에높이를조절하여 root로부터 leaf까지가장 path와가장짧은 path의길이가 2 이하가되도록유지하는구조를가지고있었다. 그러나알고리즘이복잡하여구현이어렵고각각의 node가차지하는공간이큰문제점이있었다. 2-3 tree는각각의 node가최대 2개의원소를가지고 2개혹은 3개의자식을가지게하여 AVL tree보다간단한방법으로 tree의높이를모두같게유지하였다. 그런데 2-3 tree는알고리즘에서 root에서 leaf까지내려갔다가 leaf에서 root로역추적하면서 tree의형태를바로잡아야하는번거로움이있었다. 이를개선한 B-tree는 2-3 tree와유사하게각각의 node가지정된개수 (k개) 이하의자식을가지는 tree로 root에서 leaf로가면서 tree의형태를바로잡아역추적의번거로움을없애고각각의 node가가지는자식의최대개수를 4개이상의임의로짝수로설정할수있게하였다. 2-3 tree나 B-tree와같이자식을여러개가지는경우일부공간을낭비하게되는데이를개선하여 binary search tree 형태로개선한알고리즘이 red-black tree이다. Red-black tree는 root 에서 leaf로가는 path의길이가최대 2배이하로차이나게하는근사적인 balancing을하는알고리즘으로개념적으로직관적이고각각의 node당 1bit 추가메모리만사용하므로널리사용되고있다. AA tree는 red-black tree의단점을일부개선한 search tree이다. 현재까지 balanced search tree 중널리사용되는알고리즘은 B-tree와 red-black tree이므로이들에대하여간략하게소개하겠다. b-1) B-tree B-tree는 시간에 select, insert, delete를수행할수있는유연한 tree 구조로각각의 non-leaf node가 2개혹은 3개의자식을가지고모든 leaf node가같은높이를가진다는특징이있다. B-tree은 join과 split 연산 [ 그림 7, 8] 을이용하여높이를조절하는데높이가커질때에는항상 root node의 split에의해 tree가위로커지므로아래에서부터위로증가하는특징을가진다고할수있다. 그림 6. B-tree 의예제 - 5 -

6 그림 7. B-tree 의 join 예제. (insert 'I') 그림 8. B-tree 의 split 예제 (insert 'H') 그림 7은 B-tree의 join 예제를보여준다. I를추가하기에앞서 DEF node의 E를 CK node에 join하여 I를추가할수있는공간을만든다. 그리고생긴공간에 I를추가한다. 그림 8은 B-tree의 split 예제를보여주는데 H' 를추가하기전에 CEK node를분할하여높이를증가시키고 H를추가한다. Join과 split을최대 만큼반복되므로연산들의복잡도에는영향을주지않는다. b-2) Red-Black tree Red-black tree는각각의 node가 red 또는 black의 color를가지는 binary search tree로 root에서 leaf로가는가장짧은 path의길이와가장긴 path의길이가 2개이하차이나는특징을가지는 balanced search tree이다. [ 그림 9] Red-black tree는다음의 red-black property를가진다. 1 모든 node는 red 또는 black이다. 2 root는 black이다. 3 모든 leaf는 black이다. (leaf는모두 black인 nil node인데그림에서는표시하지않았다.) 4 어떤 node가 red이면자식은모두 black이다. (red는 parent-child로연속되지않음 ) 5 root에서 leaf로가는모든 path에는동일한개수의 black node가존재한다. 그림 9. Red-black tree 의예제 - 6 -

7 Red-black tree의높이는 rotation에의해조절하는데연산수행시 tree를따라가면서 red-black tree property를유지할수있도록 tree의형태를유지해나간다. ( 자세한사항은 [1] 참조 ) [ 그림 10] 은 'I' 를추가하는과정에서 rotation이나타나는예를보여준다. 그림 10. Red-black tree 의 rotation 예제 (insert 'I') (4) Hash Table Hash table은 table(array로생각 ) 에 key와 value를가지는데이터를저장하는자료구조로 hash function이라고불리는함수를이용하여 key를 array의 index로변환한다. Hash table 의크기가데이터의크기의상수배정도일때 hash function이데이터들을 hash table 상에고루나눠주면 hash table 상에서 select, insert, delete가 시간에수행할수있으므로 hash table은데이터의양이매우많은경우매우효율적인자료구조이다. 그러나최악의경우연산시간이 시간까지늘어날수있고 hash function 값이같은 key들을처리할 collision resolution 방법이필요하다는점에서신중하게사용하여야한다. 실제구현할때에는여러가지어려움이있을수있는데먼저좋은 hash function의계산이느릴수있고 hash function이고르면 table에대한접근의 locality가적으므로 cache의도움을받기어렵다. 그리고 hash table을조작하는방법이복잡해질수록 error가발생하기쉽고사용자가데이터의특성을고려하여 hash function, table size, collision resolution 방법등을모두결정하여야하므로사용하기가까다롭다는단점이있다. 그러므로 hash table은데이터의여러가지특징을고려하여신중하게사용하여야한다

8 (5) 성능요약 (summary) 그림 11. 수치데이터에대한 index 의성능요약 4. 기타데이터에대한 index (1) 문자열데이터에대한 index 문자열데이터 (string data) 에대한대표적인 index로 suffix tree를들수있다. Suffix tree 는어떤 string S에대하여 S의모든 suffix를 root에서 leaf로가는 path로가지는 tree로 pattern matching이나 LCA (Longest Common Ancestor) 와같은 string operation들을빠르게수행할수있도록해주는자료구조이다. [3] [ 그림 12] 는 S=BANANA$ 에대한 suffix tree의예를보여준다. S의모든 suffix가 tree의 root로부터의 path에포함되어있음을쉽게확인할수있다. 그림 12. S=BANANA$ 에대한 suffix tree Suffix tree 를만드는데걸리는시간은 인데 [3] S 의모든 suffix 의길이의합이 - 8 -

9 임을고려하면 suffix tree를효율적으로만들수있음을알수있다. 일단 suffix tree를만들고나면여러 string operation을빠르게수행할수있는데한예로 [ 그림 12] 의 S에서 pattern P=NAN을찾고싶다면 suffix tree에서단순히 NAN을따라가면된다. 도착한 leaf node가 S의 3번째글자 (position 2) 를가리키고있으므로 S의 3번째글자부터 NAN 이나타남을확인할수있다. 즉 S에서 pattern P를찾는데 시간이걸리므로매우효율적으로 pattern을찾을수있음을알수있다. (2) 다차원데이터에대한 index 다차원데이터에대한 index의한가지로 1984년 Antonin Guttman에의해제안된 R-tree 를들수있다. R-tree는 B-tree와같은방법으로 balance를유지하는다차원데이터에대한 balanced search tree이다. R-tree는다차원공간을계층적인 bounding rectangle들로쪼개어관리한다. 저장데이터들은모두 R-tree의 leaf node에저장되고 R-tree의 non-leaf node들은자식들이가지는데이터혹은 bounding rectangle들을모두포함하는 bounding rectangle을가진다. 그림 13. R-tree 의예 그림 14. [ 그림 13] 의 2 차원범위분포 [ 그림 13] 과 [ 그림 14] 는 2차원공간상에서 R-tree와 R-tree의점들이저장된공간을보여주는데예를들어 node R8 아래의데이터들은모두 R8의 bounding rectangle 내에포함된다. 그리고 node R3의 bounding rectangle은 node R8, R9, R10의 bounding - 9 -

10 rectangle을모두포함한다. Node R1의 bounding rectangle은 node R3, R4, R5의 bounding rectangle을포함하는더큰 rectangle이다. R-tree에서 insert와 delete는가까운원소들이최대한같은 leaf node에할당되도록진행되고 bounding box의크기를최소로유지할수있도록진행된다. Select는찾고자하는점을포함할수있는 bounding rectangle을가지는모든 node들을 traverse하면서찾게된다. 이때대부분의 node들은볼필요가없으므로 R-tree의연산은평균적으로 시간에수행된다. 5. 결론 이프로젝트에서는자주사용하는 index에대하여간략하게소개하고각각의 index가가지는성능을정리하였다. 살펴본결과수치데이터에대해서는데이터의크기가작은경우에는구현이단순한 array나 list를사용하는것이바람직하고데이터의개수가많아지면효율적인관리가필요하므로 binary search tree나 hash table을쓰는것이바람직해보인다. 특히데이터의 update가없는경우 array에 sorting만해놓아도좋은성능을낼수있었다. 그러므로실제사용하는 index를고를때에는수행시간뿐아니라구현의용이성, 사용메모리, 데이터의개수와분포, update 빈도등다양한측면을종합적으로고려하여야한다는결론을내릴수있다. 그리고문자열데이터나다차원데이터등다른형태의데이터에대해서는각각다른형태의최적화된 index가존재함을확인하여데이터에따라 index가다른모습이됨을볼수있었다. 6. 참고문헌 (References) [1] Introduction to Algorithms, (Second Edition) Thomas H. Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein, MIT Press, [2] Wikipedia, [3] A space-economical suffix tree construction algorithm, Edward M. McCreight, Journal of ACM 23 (2): [4] R trees: A dynamic index structure for spatial searching, Antonin Guttman, In proc. ACM SIGMOD International Conference on Management of Data, page 47-57, Boston, June

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table 쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

chap 5: Trees

chap 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 information

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 13. 탐색트리 AVL 트리, B- 트리, 2-3-4 트리 정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 이진탐색트리의예 3 BST 의최선과최악의경우

More information

11강-힙정렬.ppt

11강-힙정렬.ppt 11 (Heap ort) leejaku@shinbiro.com Topics? Heap Heap Opeations UpHeap/Insert, DownHeap/Extract Binary Tree / Index Heap ort Heap ort 11.1 (Priority Queue) Operations ? Priority Queue? Priority Queue tack

More information

2002년 2학기 자료구조

2002년 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 information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft 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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft 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 information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 프로젝트정리 1주차 : 미로를텍스트파일로만들어출력하는프로그램작성. 2주차 : 텍스트형태의미로를 MC의그래픽기능을이용하여그리는프로그램작성. 3주차 : 미로에서길찾는프로그램작성. Dept. of CS, Sogang Univ. 1 DS를이용한미로길찾기문제 DS를이용한미로길찾기문제는 2주차까지설계한미로의출발점과도착점을연결하는가장짧은경로를탐색해출력하는문제이다. NxM

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 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

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft 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 information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

03_queue

03_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 information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft Word - FunctionCall

Microsoft 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 information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

C 언어 강의노트

C 언어 강의노트 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 information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Microsoft PowerPoint - 제3장-배열.pptx

Microsoft PowerPoint - 제3장-배열.pptx 제 3 강. 배열 (Array) 자료구조 1 제 3 강. 배열자료구조 학습목차 1. 배열의개념 2. 구조체 3. 희소 (Sparce) 행렬 4. 다차원배열의저장 2 1. 배열의개념 리스트는일상생활에서가장많이쓰이는자료형태이다. 예 ) 학생의명단, 은행거래고객명단, 월별판매액등 배열 (Array) 은컴퓨터언어에서리스트를저장하는데이터타입이다. 리스트와배열은같은개념이지만다른차원의용어이다.

More information

고급자료구조

고급자료구조 배상원 Binary Search Tree (BST) Balanced BSTs Red-Black Tree Splay Tree Geometric Search Trees Range Tree Interval Tree Segment Tree Binary Indexed Tree Definition (recursive) An empty tree is a binary tree

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf 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 information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 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 information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

Microsoft PowerPoint - Chap5 [호환 모드]

Microsoft PowerPoint - Chap5 [호환 모드] 데이터구조 (hapter 5: Trees) 2011 년봄학기 숙명여자대학교정보과학부멀티미디어과학전공박영호 Index hapter 01: asic oncepts hapter 02: rrays and Structures hapter 03: Stacks and Queues hapter 04: Lists hapter 05: Trees hapter 06: Graphs

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx Chapter 2 Secondary Storage and System Software References: 1. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. 목차 Disks Storage as a Hierarchy Buffer Management Flash Memory 영남대학교데이터베이스연구실

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

Microsoft PowerPoint - o8.pptx

Microsoft 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

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft 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 information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ 00. 리스트 자료구조 01. 링크드 리스트 02. 더블 링크드 리스트 03. 환형 링크드 리스트 리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : (

More information

歯MW-1000AP_Manual_Kor_HJS.PDF

歯MW-1000AP_Manual_Kor_HJS.PDF Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15 Page 16 Page 17 Page 18 Page 19 Page 20 Page 21 Page 22 Page 23 Page 24 Page 25 Page 26 Page 27 Page

More information

1장. 리스트

1장. 리스트 01. 링크드리스트 02. 더블링크드리스트 03. 환형링크드리스트 배열과는달리유연하게크기를바꿀수있는자료구조 각노드는다음노드를가리키는포인터를가짐. 각노드를다음노드를가리키는포인터로연결하여만든리스트. Single Linked List 라고도함. 링크드리스트의첫번째노드를헤드 (Head), 마지막노드를테일 (Tail) 이라고한다. C 언어로표현하는링크드리스트의노드 typedef

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<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

Microsoft PowerPoint - 알고리즘_11주차_2차시.pptx

Microsoft 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 information

6.24-9년 6월

6.24-9년 6월 리눅스 환경에서Solid-State Disk 성능 최적화를 위한 디스크 입출력요구 변환 계층 김태웅 류준길 박찬익 Taewoong Kim Junkil Ryu Chanik Park 포항공과대학교 컴퓨터공학과 {ehoto, lancer, cipark}@postech.ac.kr 요약 SSD(Solid-State Disk)는 여러 개의 낸드 플래시 메모리들로 구성된

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

슬라이드 1

슬라이드 1 Data Structure & Algorithms SANGJI University KO Kwangman () 자료 (data) 1. 자료와정보 현실세계로부터의단순한관찰이나측정을통하여수집한사실이나개념의값들또는값들의집합. 정보 (information) 의사결정에도움을주기위해유용한형태로다시작성된 (= 가공 ) 자료. Data Structure & Algorithms

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

7장

7장 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트

More information

Tcl의 문법

Tcl의 문법 월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이

More information

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table   IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한 쉽게배우는알고리즘 6 장. 해시테이블 Hash Table http://academy.hanb.co.kr 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 - 2 - 한빛미디어 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

chap 5: Trees

chap 5: Trees Chapter 5. TREES 목차 1. Introduction 2. 이진트리 (Binary Trees) 3. 이진트리의순회 (Binary Tree Traversals) 4. 이진트리의추가연산 5. 스레드이진트리 (Threaded Binary Trees) 6. 히프 (Heaps) 7. 이진탐색트리 (Binary Search Trees) 8. 선택트리 (Selection

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

06장.리스트

06장.리스트 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :

More information

C# Programming Guide - Types

C# 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

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

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 information

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, 2018 1 George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. 실행후 Problem 1.3에 대한 Display결과가 나와야 함) George 그림은 다음과

More information

결과보고서

결과보고서 오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)

More information

CD-6208_K

CD-6208_K Operation Manual CD/MP3/WMA/WAV Player CD-610U POWER OFF CD-610U 1 2 CD-610U CD-610U 3 4 CD-610U CD-610U 5 26 CD-610U CD-610U 37 5 6 7 8 CD / MP3 / WMA / WAV PLAYER INSERT COMPACT DISC SELECT HIGH QUALITY

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

B _00_Ko_p1-p51.indd

B _00_Ko_p1-p51.indd KOS-V000 B64-797-00/00 (MV) KOS-V000 설명서를 보는 방법 이 설명서에서는 삽입된 그림을 통해 작동 방법을 설명합니다. 이 설명서에 나타낸 화면과 패널은 작동 방법을 자세히 설명하는 데 이용되는 예입니다. 따라서 실제 화면이나 패널과 다르거나 일부 디 스플레이 패턴이 다를 수도 있습니다. 찾기 모드 방송국 선택 설정. TUNER

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

chap01_time_complexity.key

chap01_time_complexity.key 1 : (resource),,, 2 (time complexity),,, (worst-case analysis) (average-case analysis) 3 (Asymptotic) n growth rate Θ-, Ο- ( ) 4 : n data, n/2. int sample( int data[], int n ) { int k = n/2 ; return data[k]

More information

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 SNU 4190.210 프로그래밍 원리 (Principles of Programming) Part III Prof. Kwangkeun Yi 차례 1 값중심 vs 물건중심프로그래밍 (applicative vs imperative programming) 2 프로그램의이해 : 환경과메모리 (environment & memory) 다음 1 값중심 vs 물건중심프로그래밍

More information

놀이동산미아찾기시스템

놀이동산미아찾기시스템 TinyOS를이용한 놀이동산미아찾기시스템 윤정호 (mo0o1234@nate.com) 김영익 (youngicks7@daum.net) 김동익 (dongikkim@naver.com) 1 목차 1. 프로젝트개요 2. 전체시스템구성도 3. Tool & Language 4. 데이터흐름도 5. Graphic User Interface 6. 개선해야할사항 2 프로젝트개요

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - 30.ppt [호환 모드] 이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST

More information

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가 서강대학교공과대학컴퓨터공학과 (/5) CSE08 ( 반 ): 알고리즘설계와분석 < 프로그래밍숙제 > (v_.0) 담당교수 : 임인성 05 년 0 월 일 마감 : 0 월 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가과목게시판에공고할예정임. 목표 : 주어진문제에대한분석을통하여 optimal substructure 를유추하고, 이를 bottom-up

More information

슬라이드 제목 없음

슬라이드 제목 없음 Chapter 5: TREES Trees Trees Def) a tree is finite set of one or more nodes such that 1) there is a special node (root) 2) remaining nodes are partitioned into n 0 disjoint trees T 1,T 2,,T n where each

More information

PowerPoint Presentation

PowerPoint 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 information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft PowerPoint - User Manual-100 - 20150521.pptx

Microsoft PowerPoint - User Manual-100 - 20150521.pptx CIC-100 사용 설명서 (User Manual) 나의 커뮤니티, 보는 이야기 TocView [모델명 : CIC-100] 주의사항 매뉴얼의 내용은 서비스 향상을 위하여 개별 사용자의 사전 동의 또는 별도의 공지 없이 변경될 수 있습니다. 사용자의 인터넷 환경에 따라 제품 성능 및 기능의 제작 또는 사용이 불가능할 수 있습니다. 본 제품의 이용 중 장애에 의하여

More information

Operating System Lab 2

Operating System Lab 2 2019 Operating System Lab 2 LAB 2 SYNCHRONIZATION CHOI GUNHEE, CHOI JONG MOO [ Lab 2 Synchronization ] 운영체제수업을통해 Race Condition 의위험성및 Synchronization 의필요성에대해숙지하였다. 이를바탕으로본과제에서는 pthread 기반 mutex 를활용해 Race

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp 2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상

More information

Discrete Mathematics

Discrete Mathematics 25 년봄학기 문양세컴퓨터과학과강원대학교자연과학대학 강의 강의내용 Binary Trees (Ch. 6 in 화일구조 ) B-tree, B*-tree, Trie (Ch. 6 in 화일구조 ) B + -tree (Ch. 7 in 화일구조 ) Indexed Sequential File (Ch. 7 in 화일구조 ) Page 2 색인, 인덱스 (Index) 특징 파일의레코드들에대한효율적접근구조

More information

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2016년 12월15일 ( 목 ) 오전 9시40분 ~) 담당교수 : 서강대학교컴퓨터공학과임인성 < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고, 반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. function MakeSet(x) { x.parent

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc DELL PowerEdge R710 Server 성능분석보고서 본자료는 클루닉스에서자사통합시뮬레이션시스템구성제품인 GridCenter를이용하여 Dell PowerEdge R710 서버의성능을분석한보고서입니다. 클루닉스와 DELL의협의없이발췌및배포를금합니다. BMT 환경 : GridCenter-CAP, GridCenter-HPC, CAE 어플리케이션 Abaqus,Fluent,Gaussian

More information

Oracle Database 10g: Self-Managing Database DB TSC

Oracle Database 10g: Self-Managing Database DB TSC Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%

More information

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7> 제14장 동적 메모리 할당 Dynamic Allocation void * malloc(sizeof(char)*256) void * calloc(sizeof(char), 256) void * realloc(void *, size_t); Self-Referece NODE struct selfref { int n; struct selfref *next; }; Linked

More information

CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose

CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose CUDA Programming Tutorial 2 Memory Management Matrix Transpose Sungjoo Ha April 20th, 2017 Sungjoo Ha 1 / 29 Memory Management 병렬연산장치를활용하기위해하드웨어구조의이해를바탕에둔메모리활용이필요 CUDA 프로그래밍을하며알아야하는두가지메모리특성을소개 전치행렬계산을예제로

More information

슬라이드 1

슬라이드 1 CHAP 1: 자료구조와알고리즘 일상생활에서의사물의조직화 조직도 일상생활에서의사물의조직화 Ticket Box 일상생활과자료구조의비교 일상생활에서의예 물건을쌓아두는것 영화관매표소의줄 할일리스트 자료구조 스택 큐 리스트 a b c NULL C B A 영어사전사전, 탐색구조 Ticket Box 지도 조직도 그래프 트리 전단 (front) 후단 (rear) 자료구조와알고리즘

More information

K7VT2_QIG_v3

K7VT2_QIG_v3 1......... 2 3..\ 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 " RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

歯기구학

歯기구학 1 1.1,,.,. (solid mechanics)., (kinematics), (statics), (kinetics). ( d y n a m i c s ).,,. ( m e c h a n i s m ). ( l i n k a g e ) ( 1.1 ), (pin joint) (revolute joint) (prismatic joint) ( 1.2 ) (open

More information

Chapter 4. LISTS

Chapter 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 information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

슬라이드 1

슬라이드 1 C programming and Data Structures Overview T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2018

More information