일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MariaDB
- 인프런백기선
- 알고리즘분석
- 인프런김영한
- DDD
- 기술면접
- mysql
- 이팩티브 자바
- jpa
- 도메인 주도 개발 시작하기
- aop
- AWS
- vue.js
- SQL쿡북
- 자바
- 클린코드
- CleanCode
- react
- java
- AWS RDS
- 혼공SQL
- 자바예외
- 네트워크
- 자바스터디
- 알고리즘
- 자료구조
- 인덱스
- 이펙티브자바
- 이펙티브 자바
- 스프링부트와AWS로혼자구현하는웹서비스
- Today
- Total
목록알고리즘 (7)
기록이 힘이다.
1. 컴퓨터에 장한 자료 중에서 원하는 정보를 찾는 작업 2. 삽입이나 삭제 작업에서는 원소를 삽입하거나 삭제할 위치를 찾기 위해서 탐색을 수행 3. 효율적인 탐색을 위해 데어터를 빠르게 탐색할 수 있도록 잘 정리하고 분류하는 것도 중요 1. 다른 레코드와 중복되지 않도록 각 레코드를 대표할 수 있는 필드 2. 항목과 항목을 구별시켜주는 키 3. 탐색이란 탐색키와 데이터로 이루어진 여러 개의 항목 중에서 원하는 탐색키를 가지고 있는 항목을 찾는 것 1. 일렬로 나열된 데이터를 처음부터 마지막까지 순서대로 탐색하는 방법 2. 순서화되어 있지 않은 경우 사용 3. 탐색해야 하는 데이터의 양에 따라 효율이 달라지는데 데이터의 양이 많으면 탐색 시간이 증가 4. 선형 탐색이라고도 함 5. 데이터 비교 횟수는 찾..

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

보통 다음 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. ..
프로그램 = 자료구조 + 알고리즘 알고리즘이 특정한 목적을 달성하기 위한 절차라고 한다면 자료구조는 알고리즘에 필요한 자료의 집합이다. 동일한 알고리즘이라도 자료구조가 달라지면 전혀 다른 프로그램이 될 수 있기 때문에 자료에 알맞은 자료구조를 만드는 것이 매우 중요하다. 작성된 알고리즘은 다양한 자료구조들을 포함할 수 있다. 자료구조(data structure) 1. 데이터를 효율적으로 표현하고 저장하기 위해 구조화하는 것 2. 자료의 사용 방법이나 성격에 따라 효율적으로 사용하기 위하여 조직하고 저장하는 방법 자료의 형태에 따른 분류 1. 단순 구조: 정수, 실수, 문자, 문자열 2. 선형 구조: 리스트, 연결 리스트, 스택, 큐, 데크 3. 비선형 구조: 트리, 그래프 4. 파일 구조: 순차 파일, ..