반응형

자료구조 알고리즘 14

시간복잡도

알고리즘 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 1, -1 ->> 1 방법1: 정수값을 제곱한 값에 다시 루트를 씌우기 방법2: 정수가 음수인지 확인해서, 음수일 때만, -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를 정의하고 계산함 2. 알고리즘 복잡도 계산 항목 시간 복잡도: 알고리즘 실행 속도 공간 복잡도: 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 함 알고리즘 성능 표기법 Big O (빅-오) 표기법: O(N) 알고리즘 최악의 실행 시간을 표기 가장 많이/일반적으로 사용함 아무리 최악의 상황이라도, 이정도의 성능은 보장한다는 의미이기 때문 Ω (오메가) 표..

Linked List -링크드 리스트

1. 링크드 리스트 (Linked List) 구조연결 리스트라고도 함배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원배열 -> 미리 특정한 연결된 공간을 예약하고 데이타를 씀 링크드리스트-> 미리 예약을 안하고 필요할 때 마다 추가 (배열의 단점을 극복)-> 데이타+ 다음 데이타 부르는 주소 2. 링크드 리스트 기본 구조와 용어 노드(Node): 데이터 저장 단위 (데이터값, 포인터) 로 구성포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 * 일반적인 링크드 리..

Stack- 스택

스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터구조 *가장중요 큐: FIFO 정책 스택: LIFO 정책 2. 스택 구조와 프로세스 스택 스택 구조는 프로세스 실행 구조의 가장 기본 함수 호출시 프로세스 실행 구조를 스택과 비교해서 이해 필요 3. 자료 구조 스택의 장단점 장점 구조가 단순해서, 구현이 쉽다. 데이터 저장/읽기 속도가 빠르다. 단점 (일반적인 스택 구현시) 데이터 최대 갯수를 미리 정해야 한다. 파이썬의 경우 재귀 함수는 1000번까지만 호출이 가능함 저장 공간의 낭비가 발생할 수 있음 미리 최대 갯수만큼 저장 공간을 확보해야 함 스택은 단순하고 빠른 성능을 위해 사용되므로..

QUEUE - 큐

1. 큐 구조 줄을 서는 행위와 유사 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대 4가 먼저 들어왔으니 4 부터 OUT 2. 알아둘 용어 Enqueue: 큐에 데이터를 넣는 기능 - > 숫자가 들어가는것은 OUTPUT 지점부터 Dequeue: 큐에서 데이터를 꺼내는 기능 -> 숫자를 꺼내는것은 INPUT 지점부터 3.파이썬 queue 라이브러리 활용해서 큐 자료 구조 사용하기 queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공..

반응형
반응형