본문 바로가기

전체 글

(86)
알고리즘 시간복잡도 알고리즘 빅오 표기법컴퓨터가 하는 일 : 데이터 저장, 연산어떻게 하면 데이터를 적은 메모리에 저장할까? → 자료구조어떻게 하면 문제를 빠르고 정확하게 해결할 수 있을까? → 알고리즘알고리즘의 효율성을 판단하는 근거로 시간 복잡도와 공간 복잡도를 들 수 있다.시간 복잡도 : 얼마나 빠르게 결과를 출력할수 있을까? T(n)공간 복잡도 : 메모리를 얼마나 사용하는가? S(n)효율성을 판단하는 표기법으로 빅오 표기법, 빅오메가 표기법, 빅세타 표기법이 있다. 빅오 표기법최악일 때의 성능을 판단하는 것이다. 이보다 더 나쁜 경우는 없어를 기준으로 한다 (상한)가장 많이 사용하는 분석방법이다 ↔ 최상일 때의 경우를 판단하는 것은 빅오메가 표기법이다. 시간 복잡도시간 복잡도는 문제를 해결하는데 몇번의 단계를 거쳐야..
선형 자료구조 자료구조내가 저장하려는 데이터를 효율적으로 저장하고 관리하는 방법이 자료구조입니다.어떻게 하면 적은 메모리를 사용해서 내 데이터를 저장하고 관리할수 있을까? 에 관한 것이며 적절한 자료구조의 선택은 실행 성능의 향상을 기대할 수 있게 됩니다.자료구조를 선택하려면 자료구조에 대한 장점, 단점에 대해 알고 있어야 합니다.자료구조는 순차적인 순서를 갖는 선형 자료구조 / 비선형 자료구조로 나눠집니다. 선형 자료 구조1. 배열(선형리스트)배열은 청크 형태로 연속적인 메모리가 할당되는 공간입니다, 배열은 덩어리로 할당되는 자료구조이며 연속적으로 할당되기 때문에 각각의 원소에 접근할땐 0부터 1씩 증가하는 인덱스로 접근합니다.배열은 가장 큰 장점이 임의 접근(random access)입니다. 내가 배열의 특정 원소..
자료구조 트리 트리란 비선형 자료구조이며, 이름 그대로 나무 형태의 자료 구조이다.자식과 부모 관계로 이루어져있다 트리의 용어루트(root) : 트리의 최상위 노드노드(node) : 각 노드는 널 값이나 자식을 가리키는 두 개의 포인터와 데이터를 가진다간선(edge) : 두 노드를 연결하는 데 사용한다리프(leaf) : 자식이 없는 노드를 말한다자식 : 한 노드로부터 가지로 연결 된 아래쪽 노드이다부모 : 한 노드에서 가지로 연결 된 위쪽 노드를 말한다형제 : 같은 부모를 가지는 노드를 말한다높이(height / depth) : 루트부터 리프까지 가장 긴 경로의 간선수를 말한다레벨 : 루트에서 노드까지의 경로에 있는 간선 수를 말한다. 루트의 레벨이 0이며, 가지가 하나씩 아래로 뻗어 나갈 때마다 레벨이 1씩 늘어난다..