자료구조 4

검색이 빠른 자료구조

O(1) > O(log n) > O (n) > O(n log n) > O(n^2) > O(n^3) > O(2^n) > O(n!) HashMap 단건 검색 시간 복잡도 : O(1) 범위 탐색 시간 복잡도 : O(N) 전방 일치 탐색 불가 ex) like 'AB%' List 정렬되지 않은 리스트 탐색 시간 복잡도 : O(N) 정렬된 리스트 탐색 시간 복잡도 : O(logN) 정렬 되지 않은 리스트 정렬 시간 복잡도 : O(N) ~ O(N * logN) 삽입/삭제 비용이 매우 높다 Tree 트리 높이에 따라 시간 복잡도 결정 트리의 높이를 최소화 하는 것이 중요! 한쪽으로 노드가 치우치지 않도록 균형을 잡아 주는 트리 사용 ex) Red-Black Tree, B+Tree B+Tree 삽입/삭제시 항상 균형을 ..

Language/Java 2023.07.12

정렬

데이터를 순서대로 나열하는 방법입니다.예시: 큰 수 → 작은 수 (내림차순), 작은 수 → 큰 수 (오름차순)🔸 Bubble Sort (버블 정렬)✅ 특징Sort를 이해하기 매우 쉽다.성능이 좋지 않다.바로 옆 인자와 비교✅ 코드 (Java)int size = arr.length;for(int i = 1; i arr[j + 1]) { swap(arr, j, j + 1); // 구현 필요 } }}✅ 시간 복잡도O(N^2)🔗 참고 링크GitHub: https://github.com/Raconer/JavaCode/blob/master/src/test/java/com/java/dataStructure/sort/Bubble.java YouTube: https://youtu.be/lyZQPj..

Data Structure 2023.04.15

성능 분석

1. 🔍 성능 분석이란?문제를 해결하는 여러 알고리즘 중 가장 효율적이고 최적화된 방법을 선택하기 위한 분석2. 📌 알고리즘 분석 기준기준설명정확성올바른 입력에 대해 정해진 시간 내에 정확한 출력을 생성하는가명확성이해하기 쉽고, 명확하게 작성되어 있는가수행량알고리즘의 핵심 연산량을 기반으로 분석최적성시스템 환경에 따라 메모리, 수행 시간 등 자원이 최적화되어 있는가3. 🧠 알고리즘 분석 방법📦 공간 복잡도 (Space Complexity)고정 공간: 프로그램 크기나 입력 크기와 무관 (ex. 변수, 상수)가변 공간: 입력 크기나 실행 과정에 따라 변화(ex. 배열, 스택, 재귀 호출 정보 등)공식:공간 복잡도 = 고정 공간 + 가변 공간⏱ 시간 복잡도 (Time Complexity)컴파일 시간 +..

Data Structure 2023.04.15

자료구조와 소프트웨어 생명주기

1. 📚 자료구조란?다양한 자료를 효율적으로 표현, 저장, 처리할 수 있도록 구성하는 방법컴퓨터에서 자료구조는 논리적인 구조와 프로그램적인 처리 방법을 구현하는 것2. 📂 자료구조 분류🔹 단순 구조정수, 실수, 문자, 문자열🔹 선형 구조자료 간의 앞뒤 관계가 1:1로 고정된 구조List (리스트)순차 리스트로 논리적 순서와 물리적 순서가 일치Linked List (연결 리스트)물리적 순서와 무관하게 포인터로 논리적 순서를 구성 단순 연결 리스트 이중 연결 리스트Stack / Queue / Deque삽입, 삭제에 제한이 있는 선형 자료구조🔹 비선형 구조계층 구조(Hierarchical) 또는 망 구조(Network)트리(Tree) 일반 트리 이진 트리그래프(Graph) 방향 그래프 무방..

Data Structure 2023.04.15