목록Computer Science (63)
가자미의 개발이야기
개념 1. 포인터를 이용해서 물리적으로 떨어진 노드들을 논리적으로 연결. 2. 최대 원소 개수 지정 불필요. 3. 중간에 원소 추가 시 이동 연산 불필요. 4. 물리적으로 연결된 것이 아니기 때문에 탐색 연산 비용이 높음 헤더파일 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #ifndef _LINKEDLIST_ #define _LINKEDLIST_ typedef struct ListNodeType { int data; struct ListNodeType* pLink; }ListNode; typedef struct LinkedListType { int currentElementCount; ListNode h..
1. 헤더파일(ArrayList.h) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 //전처리 지시자 #ifndef _ARRAYLIST_ #define _ARRAYLIST_ typedef struct ArrayListNodeType { int data; }ArrayListNode; typedef struct ArrayListType { int maxElementCount;//최대원소갯수 int currentElementCount;//현재 원소의 개수 ArrayListNode* pElement;//원소 저장을 위한 1차원 배열 }ArrayList; //함수 선언 ArrayList* ..
1. 공간 복잡도 : 알고리즘 실행에 필요한 저장공간의 정도 2. 시간 복잡도 : 알고리즘 실행에 필요한 시간의 정도 일반적으로 공간보다 시간에 예민한 환경이 많기 때문에 시간 복잡도를 주로 사용. 시간 복잡도에는 두가지 유형이 있다 a. 실제 걸리는 시간 측정 b. 실행되는 명령문의 개수 계산 c. 빅오(big o)계산법 빅오계산법은 명령문 계산 함수에서 가장 큰 영향을 주는 항만 남기고 모두 무시한 다음, 그 항의 계수마저 제거하여 남은 것으로 복잡도를 측정하는 것이다. 예를 들어 실행되는 명령문의 개수가 3n+2인 알고리즘이 있다하면, 여기서 가장 큰 영향을 주는 항은 3n이고 계수인 3을 제거해 이 알고리즘의 빅오계산은 O(n)이다. 이때 빅오 계산은 n에 들어가는 수의 형태에 따라 크기가 달라진..