분류 전체보기
-
Linked List (링크드 리스트, 연결 리스트)자료구조(DataStructure) 2013. 6. 19. 17:53
개념 및 용어 링크드 리스트의 개별 데이터들을 원소(element) 또는 노드(node)라고 함. 각 노드는 다음 노드의 주소를 가지고 있는데 이 걸 다음링크(next link) 또는 다음 포인터(next pointer)라고 함. 그외 data, information, value, cargo, payload등의 필드를 가지고 있음. 리스트의 첫번째 노드를 헤드(head)라고 함. 종류 싱글 링크드 리스트(Singly linked list) 노드가 데이터 필드와 다음 노드를 가르키는 필드로 구성됨. 더블 링크드 리스트(Doubly linked list) 각 노드들이 양옆의 노드에 대한 링크를 가지고 있음. 다중 링크드 리스트(Multiply linked list) 각 노드들이 링크에 대한 필드를 2개 이상..
-
Binary Search Tree (이진 탐색 트리)자료구조(DataStructure) 2013. 6. 17. 13:52
이진 탐색 트리란? 노드기반 이진 트리 데이터 구조. 속성 * 노드의 왼쪽 하위트리는 노드의 키보다 작은 키를 가진 노드들만 가지고 있음. * 노드의 오른쪽 하위트리는 노드의 키보다 큰 키를 가진 노드들만 가지고 있음. * 좌우 하위 트리는 각각이 다시 이진 탐색 트리여야 함. * 중복된 노드가 없어야 함. 검색방법. 1. root 노드부터 시작 2. 트리가 null이면 값이 없음. 3. root와 키가 같으면 찾기 성공 4. 키가 루트보다 작으면 왼쪽 하위트리검색, 키가 루트보다 크면 오른쪽 하위트리 검색 5. 하위트리가 null이 될때까지 이 과정 반복. 검색 시간복잡도 평균 : O(log n) 나쁜경우 : O(n) 삽입 삽입은 검색부터 시작. 트리를 검색한 후 키와 맞는 노드가 없으면 마지막 노드에..
-
Tree Structure (트리구조)자료구조(DataStructure) 2013. 6. 13. 10:16
정의 자료의 상속구조를 그래프 형태로 보여주는 방법. 나무(tree)형태로 보여지기 때문에 트리 구조라고 함. 실제 나무를 뒤집어 놓은 형태로 최상단이 루트(root, 뿌리)가 되고 하단이 리프(leaves, 잎)가 됨. 용어 루트노드(root node) 상위노드가 없는 노드. 루트 노드는 시작하는 노드이지만, 시작하는 노드가 루트노드는 아님. 무한 트리 구조에서는 루트노드가 있을수도 없을수도 있음. 브랜치(branches) 원소들을 연결하는 선 노드(nodes) 각 원소들 리프 노드(leaf nodes) 자식이 없는 노드 부모노드(parent node) 상속구조에서 한단계 상위에 있는 노드. 같은 브랜치상에 있음. 형제노드(Sibling, Brother, Sister) 같은 부모노드를 가지는 노드들 삼..
-
Quick Sort (퀵정렬, 퀵소트)algorithm 2013. 6. 5. 10:34
참조 1. http://ko.wikipedia.org/wiki/%ED%80%B5_%EC%A0%95%EB%A0%AC 2. http://en.wikipedia.org/wiki/Quicksort 3. http://codereview.stackexchange.com/questions/4022/java-implementation-of-quick-sort 시간복잡도 가장 나쁜 경우 : O(n^2) 가장 좋은 경우 : O(n log n) 평균 성능 : O(n log n) 장점 대부분의 경우에 빠르게 정렬이 가능. 단점 운이 없을때는 O(n^2) 만큼의 정렬 시간이 걸림. 알고리즘 1. 리스트에서 피봇(pivot)으로 사용할 원소를 선택 2. 리스트를 재정렬함. 이때 피봇보다 작은 값은 피봇 이전에 오게하고 피봇보다 ..
-
JAVA JSON 라이브러리 Jackson 사용법JAVA 2013. 5. 22. 14:50
참조 : 1. http://jackson.codehaus.org/ 2. http://wiki.fasterxml.com/JacksonInFiveMinutes 라이브러리 다운로드 http://wiki.fasterxml.com/JacksonDownload jackson-core, jackson-databind, jackson-annotations 를 다운 받음. Jackson 에서 JSON 처리에 제공하는 방법 1. Streaming API 성능이 빠름. 2. Tree Model 일반적인 XML처럼 노드형태로 Json 데이터를 다룸. 유연성이 가장 좋음. 입맛대로 구성할 수 있음. 3. Data Binding POJO 기반의 가자 객체들을 JSON으로 변환함. -Simple data Binding : 자바클래..
-
정렬 : Bubble Sort (버블정렬, 거품정렬)algorithm 2013. 5. 22. 10:47
참조 : http://en.wikipedia.org/wiki/Bubble_sort 시간 복잡도 가장 나쁜 경우 : O(n^2) 가장 좋은 경우 : O(n) 평균 성능 : O(n^2) 장점 구현이 단순함. 소스 public class BubbleSort { public static void main(String[] args) { int nData = 10;//정렬할 데이터 개수 설정. double TargetDataList[] = new double[nData]; //데이터 생성 for(int i = 0; i < nData; i++) { TargetDataList[i] = Math.random(); System.out.print(TargetDataList[i]+" ");//데이터 출력 } System.ou..
-
MongoDB Replica Set 구성 설정방법기타 2013. 5. 21. 10:35
참조 MongoDB 공식 매뉴얼 : http://docs.mongodb.org/manual 테스트 OS 리눅스(CentOS) 2대 Windows 1대 테스트 데이터 크기400GB 필요환경 Replica set 을 구성하려는 Mongo DB들은 각자 서로에게 연결할 수 있어야 함. 다음 명령으로 확인. mongo --host 호스트네임 --port 27017 연결 안될시 방화벽 설정 해제해 주어야 함. replica set 이름 : rs0 1. mongodb 환경설정 파일에 다음 내용 추가 port = 27017 bind_ip = 10.8.0.10 dbpath = /srv/mongodb/ fork = true logpath=/srv/mongodb/log replSet = rs0 port는 mongoDB 기..
-
이클립스(Eclipse) 파이썬(python) 개발환경 설정.PC, 개발툴 활용 2013. 5. 10. 17:40
1. http://www.python.org/download/ 에서 파이썬 설치 파일 다운로드 2. [Help] - [Eclipse Marketplace] 에서 python으로 검색 PyDev 선택해서 설치. 3. 이클립스 재시작후 [Window] - [Open perspective]에서 PyDev 선택. 4. [Window] - [Preference] - [PyDev] -[Interpreter - Python] 선택 Python interpreters에 설정 추가. [Auto Config]를 이용해서 자동으로 추가. ([New]를 이용해서 수동으로 추가해줘도 됨.) 5. [File] - [New] - [PyDev Project] 파이썬 프로젝트 생성. 6. 생성된 프로젝트에 [File] - [New] ..