본문 바로가기
반응형

분류 전체보기340

[알고리즘] Tree - 이진 검색 트리 - 1 Tree - 이진 검색 트리 - 1 검색 트리라는 것은 트리라는 자료구조를 이용하여순회하며 데이터를 검색하는 것이다. 트리는 계층적인 구조를 가지고 있으나,검색트리는 일종의 컨테이너나 집합이라고 볼수있다.따라서 이를 다이나믹 셋(dynamic set)이나 딕셔너리(dictionary), 검색 구조(search structure)라고도 부른다.데이터들이 고정되지 않고 새로운 데이터의 추가/삭제가 가능한것이 특징이다. 다이나믹 셋의 조건은 다음과 같다.여러개의 키를 저장하고 있으면서insert/search/delete가 가능하다. 연결리스트와 배열을 정렬되어지거나 정렬되어지지 않거나에 대한비교는 위의 표와 같다. 연결 리스트나 배열을 썼을 때, 위의 표에서 알수 있는 점은search, insert, dele.. 2017. 4. 19.
[알고리즘] Tree - 트리와 이진트리 Tree - 트리와 이진트리 트리라는 것은 쉽게 말해 계층적인 구조를 표현하기 위해서사용하는 것이다.일반적으로 조직도나 가계도, 파일 시스템 등에서 많이 사용된다. tree에서 각각의 노드(node)라고 하며, 노드에서 뻗어나오는 가지를 링크(link)라고한다.그리고 맨 꼭대기에 있는 노드를 루트(root)라고한다.마지막으로 마지막 레벨의 노드를 리프(leaf) 노드 라고한다. 또한 상위계층의 노드를 부모 노드 라고 하며하위계층을 자식 노드 라고 하는데 이 명칭은 상대적이다.예를 들어, 어떤 노드의 자식노드가 상대적으로 부모 노드가 될수있다는 것이다.따라서 부모가 없는 노드를 루트 노드 라고 하거나, 자식이 없는 노드를 리프 노드 라고 할수도 있다.2단계 상위 노드를 조상(ancestor), 하위 노드를.. 2017. 4. 19.
[알고리즘] Sort - Java에서의 정렬 (Sort in java) Sort - Java에서의 정렬 (Sort in java) 정렬 알고리즘에 대한 이야기가 아닌 실생활에서 쓰이는것에 대해 말해보자실제로 정렬알고리즘은 기초적이고 매우 많이 사용 되기 때문에직접 구현하지 않고 제공되는 경우가 많다.따라서, 가장 많이 사용하는 Java를 예로 들어 정렬의 사용법에 대해 알아보자 1234567int[] data = new int [capacity];// data[0]에서 data[capacity-1]까지 데이터가 꽉// 차있는 경우에는 다음과 같이 정렬한다.Arrays.sort(data);// 배열이 꽉 차있지 않고 data[0]에서 data[size-1] 까지 // size개의 이터만 있다면 당음과 같이 한다.Arrays.sort(data,0,size);Colored by .. 2017. 4. 19.
[알고리즘] Sort - Radix sort와 정렬의 속도 비교 Sort - Radix sort와 정렬의 속도 비교 이어서 다음 non-comparison sort중 하나인 radix sort를 알아보자 radix sort의 조건은1) n개의 d 자리 정수들2) 가장 낮은 자리수부터 정렬이다. 위의 그림이 직관적으로 표현이 되어있는데각 자릿수를 비교하며 정렬을 진행하게 된다.여기서 중요한 것은 자릿수로 정렬을 진행할 때 다른 자리는 생각하지 않는 다는 것이다. 12345RADIX-SORT(A,d){ for i 2017. 4. 19.
반응형