CS/Data Structure(5)
-
크루스칼, 프림, 솔린
다음은 최소 신장 트리(MST) 알고리즘인 크루스칼(Kruskal), 프림(Prim), 솔린(Borůvka) 알고리즘을 비교한 표입니다. 특징 크루스칼(Kruskal)프림(Prim)솔린(Borůvka)동작 방식간선을 가중치 순으로 정렬 후, 사이클이 발생하지 않도록 선택하여 MST 구성임의의 정점에서 시작해, 방문하지 않은 노드와 연결된 최소 가중치 간선을 추가각 컴포넌트가 자신과 연결된 최소 가중치 간선을 반복적으로 추가기본 자료구조간선 목록, 유니온-파인드우선순위 큐간선 목록사이클 방지유니온-파인드(Union-Find)방문한 노드와 연결된 간선만 고려각 컴포넌트의 최소 간선만 추가초기화간선들을 가중치 기준으로 정렬임의의 시작 정점 선택각 정점이 개별 컴포넌트로 시작시간 복잡도O(ElogE+Eα(V..
2025.01.12 -
이진트리 높이vs레벨
레벨과 높이의 차이점 비교특성레벨(Level) ↓높이(Height) ↑정의루트 노드에서 특정 노드까지의 깊이특정 노드에서 리프 노드까지의 깊이시작 기준루트 노드를 기준으로 계산리프 노드를 기준으로 계산루트 노드레벨 1(또는 0)루트의 높이는 트리의 전체 높이와 동일리프 노드트리의 최대 레벨높이 0사용 목적노드의 위치를 표현트리의 전체 크기 또는 깊이 측정 예시 A 레벨A: 레벨 1 or 레벨 0B, C: 레벨 2 or 레벨 1D, E: 레벨 3 or 레벨 2높이D, E: 높이 0B, C: 높이 1A: 높이 2 (전체 트리 높이)
2025.01.12 -
알고리즘, 빅오표기법
▶ 알고리즘문제를 해결하기 위한 일련의 단계 알고리즘의 효율성은 알고리즘이 입력 데이터의 크기에 따라 얼마나 빠르게 실행되는지 나타낸다. ▶ 복잡도여기서 알고리즘의 효율성을 판단하기 위해 복잡도를 확인한다.복잡도란 알고리즘의 성능을 나타내는 기준으로 2가지가 있다.(1) 시간복잡도 : 특정 크기의 입력에 대해 알고리즘의 수행시간을 분석(얼마나 빠르게 처리하는 지)(2) 공간복잡도 : 특정 크기의 입력에 대해 알고리즘의 메모리 사용량을 분석 (얼마나 메모리를 사용하는지) ▶ 빅오 표기법각 알고리즘의 효율성(성능)를 비교하기 위해 사용된다.데이터가 늘어날 때, 알고리즘의 성능이 어떻게 변화하는지 알 수 있다.이름빅오사용 예시상수O(1)배열 원소접근, 스택에서 삽입삭제, 큐에서 삽입삭제 로그 O(log n)..
2024.09.06 -
정렬 알고리즘
항목안정 정렬 여부제자리 정렬 여부설명최선수행시간평균수행시간최악수행시간버블정렬O O 인접한 원소끼리 비교하여 교환하는 방식O(n^2)O(n^2)O(n^2)`삽입정렬O O 앞에서부터 차례대로 이미 정렬된 부분과 비교하여 교환하는 방식O(n)O(n^2)O(n^2)선택정렬X O 최솟값을 찾아서 맨 앞으로 이동하는 방식O(n^2)O(n^2)O(n^2)쉘정렬X O 일정한 간격만큼 떨어져 있는 원소들끼리 비교하여 정렬, 간격을 점점 줄여가며 정렬O(n)O(n^1.5)O(n^2)퀵정렬X O 피벗을 기준으로 작은 값과 큰 값을 분할하여 정렬O(nlogn)O(nlogn)O(n^2)합병정렬O X 리스트를 반으로 나누고,각각을 정렬한 후 다시 합치는 방식O(nlogn)O(nlogn)O(nlogn)힙정렬X O 최대 힙 혹은 ..
2024.08.30 -
트랜잭션(Transaction)
1. 트랜잭션 정의- 데이터베이스의 상태를 일관된 상태에서 또 다른 일관된 상태로 변환시키는 논리적인 연산의 집합- 병행 제어 및 회복 작업의 논리적 단위(LUW, Logical Unit of Work)- 데이터베이스의 일관성과 무결성을 보장 2. 트랜잭션 성질 (ACID)성질정의설명예시원자성(Atomicity)트랜잭션의 모든 연산이 성공적으로 완료되거나 전혀 실행되지 않음모든 작업이 하나의 원자 단위로 처리되어야 함계좌 이체에서, 중간에 실패하면 모든 작업 취소일관성(Consistency)트랜잭션 실행 전후 데이터베이스가 일관된 상태를 유지트랜잭션 완료 시 모든 정의된 규칙 충족계좌 이체 후, 돈의 총합이 변하지 않음고립성(Isolation)여러 트랜잭션이 동시에 실행될 때 서로의 중간 상태를 볼 수 ..
2024.08.02