728x90

자료구조 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

정렬

정렬이란? 데이터를 순서대로 나열하는 방법을 의미합니다. ex) 큰수 -> 작은수, 작은수 -> 큰수 Bubble-Sort (버블) 특징 Sort를 이해 하기 매우 쉽다. 성능이 좋지 않다. 바로 옆 인자 와 비교 코드 int size = arr.length; for(int i = 1; i arr [j + 1]) { swap(arr, j, j + 1); // 구현 필요 } } }​ 시간 복잡도 : O(N^2) GIt :https://github.com/Raconer/JavaCode/blob/master/src/test/java/com/java/dataStructure/sort/Bubble.ja..

Data Structure 2023.04.15

성능 분석

성능 분석 문제에 대한 여러 가지 해결 방법 중 가장 효율적이고 사용 환경에 최적인 알고리즘을 결정하는 방법 알고리즘 분석 기준 정확성 올바른 입력이 들어왔을 때 정해진 시간 내에 올바른 결과를 출력하느냐 명확성 알고리즘이 얼마나 이해하기 쉬고 명확하게 작성되었는가를 판단 수행량 알고리즘의 특성을 나타내는 중요 연산들을 분석 최적성 시스템의 사용 환경에 따라 수행량과 메모리 사용량이 달라지기 때문에 환경에 최적화되어 있는가를 판단 알고리즘 분석 방법 공간 복잡도 고정 공간 + 가변 공간 실행하고 완료하는데 필요한 저장 공간 의미 고정 공간 + 가변 공간 고정 공간 : 프로그램의 크기나 입출력의 횟수에 상관없이 고정적으로 필요한 저장공간 (ex. 변수, 상수) 가변 공간 : 실행 과정에서 사용하는 데이터와..

Data Structure 2023.04.15

자료 구조란?

자료 구조란? 다양한 자료를 효율적으로 표현하고 저장하고 처리하여 사용할 수 있도록 하는 것 컴퓨터 분야의 자료구조 논리적인 구조와 프로그램적인 처리방법을 구현하는 것 자료구조 분류 단순구조 정수, 실수, 문자, 문자열 선형구조 : 자료의 앞뒤 관계가 1:1로 고정되어 있는 구조 List 리스트 : 순차 리스트로서 자료의 논리적인 순서와 기억 장소에 저장되는 물리적 순서가 일치하는 구조 Linked List 연결리스트 : 물리적 순서에 상관없이 저장 주소를 사용하여 논리적인 순서를 갖는다. 단순 연결 리스트 이중 연결 리스트 Stack 스택, Queue 큐, Deque 덱 : 자료의 삽입, 삭제 위치에 대한 제한 조건을 가진 선형 구조이다. 비 선형구조 : 자료 간에 선형 구조가 아닌 Hierarchic..

Data Structure 2023.04.15
728x90