일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링부트와AWS로혼자구현하는웹서비스
- DDD
- 혼공SQL
- 자바예외
- 자바
- jpa
- AWS RDS
- CleanCode
- react
- 이팩티브 자바
- MariaDB
- 기술면접
- 자바스터디
- 알고리즘분석
- 인덱스
- java
- 네트워크
- 알고리즘
- mysql
- 이펙티브자바
- 자료구조
- 인프런김영한
- vue.js
- aop
- AWS
- 인프런백기선
- 이펙티브 자바
- SQL쿡북
- 도메인 주도 개발 시작하기
- 클린코드
- Today
- Total
목록자료구조 (11)
기록이 힘이다.
1. 컴퓨터에 장한 자료 중에서 원하는 정보를 찾는 작업 2. 삽입이나 삭제 작업에서는 원소를 삽입하거나 삭제할 위치를 찾기 위해서 탐색을 수행 3. 효율적인 탐색을 위해 데어터를 빠르게 탐색할 수 있도록 잘 정리하고 분류하는 것도 중요 1. 다른 레코드와 중복되지 않도록 각 레코드를 대표할 수 있는 필드 2. 항목과 항목을 구별시켜주는 키 3. 탐색이란 탐색키와 데이터로 이루어진 여러 개의 항목 중에서 원하는 탐색키를 가지고 있는 항목을 찾는 것 1. 일렬로 나열된 데이터를 처음부터 마지막까지 순서대로 탐색하는 방법 2. 순서화되어 있지 않은 경우 사용 3. 탐색해야 하는 데이터의 양에 따라 효율이 달라지는데 데이터의 양이 많으면 탐색 시간이 증가 4. 선형 탐색이라고도 함 5. 데이터 비교 횟수는 찾..
1. 복잡한 작업 과정이나 구조를 시각적으로 표현하여 이해하기 쉽고 가시적으로 설명할 때 유용한 자료구조 2. 주어진 몇 개의 정점과 그 정점을 끝점으로 하는 선들로 이루어진 도형 3. 선형 자료구조로 표현하기 어려운 다대다 관계를 표현 가능 4. 서로 연결되어 있는 객체들 간의 관계를 표현할 수 있는 비선형 자료구조 무방향 그래프 1. 두 정점을 연결하는 간선의 방향이 없는 그래프 2. 정점 v1에서 정점 v2로 연결되는 간선은 (v1,v2)와 같이 표현 방향 그래프 1. 간선이 방향을 가지고 있는 그래프 2. 정점 v1에서 정점 v2로 연결되는 간선은 와 같이 표현 3. 방향 그래프에서 간선 와 은 서로 다른 간선 인접 1. 두 정점 vi와 vj를 연결하는 간선 (vi, vj)가 있을 때 두 정점 v..
public class MyBetterMap implements Map { // MyBetterMap uses a collection of MyLinearMap protected List maps; /** * Initialize the map with 2 sub-maps. * */ public MyBetterMap(int k) { makeMaps(k); } /** * Makes a collection of `k` MyLinearMap * * @param k */ protected void makeMaps(int k) { maps = new ArrayList(k); for (int i=0; i
시작에 요소를 추가하는 연산은 LinkedList 클래스가 ArrayList 클래스보다 빠릅니다. 하지만 요소를 끝에 더하는 것은 LinkedList가 더 느립니다. 이중 연결 리스트 -각 노드는 다음 노드와 이전 노드에 대한 참조를 포함합니다. -LinkedList 객체는 첫 번째와 마지막 요소에 대한 참조를 포함합니다. 따라서 리스트의 어느 한쪽 끝에서 시작하여 어느 방향으로든 순회할 수 있습니다. 이중 연결 리스트 구현은 ArrayList 클래스보다 시작에 요소를 추가하고 삭제하는 연산이 좋습니다. 끝에 요소를 추가하고 제거하는 연산은 ArrayList 클래스와 동일합니다. 따라서 ArrayList 클래스의 유일한 이점은 get과 set 메서드입니다. 연결 리스트는 심지어 이중 연결 리스트일 때도 ..
보통 다음 Node가 null이 아닌지 확인해야 하지만, 이 경우에는 리스트 끝까지 가면 반복문이 종료되므로 안전합니다. (size 변수는 리스트의 실제 노드 개수와 일치한다고 가정합니다.) 목적 값을 찾지 못하면 -1을 반환합니다. 이 메서드의 실행시간은 리스트의 크기에 비례 (O(n)) 합니다. add 메서드의 증가 차수는? 1. getNode 메서드가 indexOf 메서드와 유사하므로 같은 이유로 선형입니다. 2. add메서드에서 getNode 메서드 전과 후 모두가 상수 시간입니다. remofw 메서드의 모든 것은 선형인 get과 getNode 메서드를 제외하면 상수 시간입니다. 따라서 remove 메서드는 선형입니다. 두 개의 선형 메서드를 보면 때때로 결과를 이차로 생각하지만, 이것은 어떤 연..
자바 컬렉션 프레임워크에 익숙해야 한다. Collections (Java Platform SE 8 ) (oracle.com) Collections (Java Platform SE 8 ) Rotates the elements in the specified list by the specified distance. After calling this method, the element at index i will be the element previously at index (i - distance) mod list.size(), for all values of i between 0 and list.size()-1, inclusive. (Thi docs.oracle.com 인터페이스 기반 아키텍처 라고도 하는 ..
1. 각 원소에 저장되어 있는 다음 원소의 주소에 의해 순서가 연결되는 방식 2. 포인터로 자료를 순차적으로 연결함 3. 자료의 논리적인 순서와 물리적인 순서가 일치하지 않는 자료구조 연결 리스트 장점 1. 크기가 고정되지 않으며 기억 장소를 할당할 수 있는 한 계속 자료 삽입 가능 2. 중간에 데이터를 삽입하거나 삭제하는 연산이 용이함 3. 데이터 저장을 위한 기억 공간이 필요할 때마다 동적으로 만들어 쉽게 추가 가능 연결 리스트 단점 1. 구현이 복잡하고 어려움 2. 탐색 연산 비용 높음 단순 연결 리스트 1. 리스트의 각 노드에 다른 노드를 가리키는 포인터가 하나씩만 있는 것 2. 리스트를 구성하는 노드들이 한쪽 방향으로 연결된 구조 비사용 기억 공간 1. 연결 리스트를 사용하여 이미 생성된 노드들..
자바를 공부하고 프로젝트를 했지만 어딘가 약한 부분이 많다는 생각에 서점에 갔다가 집어든 책. 자료구조와 알고리즘이라는 단어에 꽂혀 읽기 시작했다. chapter1 인터페이스 chapter2 알고리즘 분석 chapter3 ArrayList 클래스 chapter4 LinkedList 클래스 chapter5 이중 연결 리스트 chapter6 트리 순회 chapter7 철학으로 가는 길 chapter8 인덱서 chapter9 Map 인터페이스 chapter10 해싱 chapter11 HashMap 클래스 chapter12 TreeMap 클래스 chapter13 이진 탐색 트리 chapter14 영속성 chapter15 위키피디아 크롤링 chapter16 불리언 검색 chapter17 정렬 세 가지 주제 1. ..