[알고리즘] 정렬 알고리즘
1) 버블 정렬 시작 5 3 2 1 4 1회차 3 2 1 4 5 2회차 2 1 3 4 5 3회차 1 2 3 4 5 4회차 1 2 3 4 5 가장 기본적인 정렬 중 하나이다. 인접한 i번째 키와 i+1번째 키를 비교하여 교환한다. 즉 1, 2번째 키를 비교하고, 2,3번째 키를 비교하여 정렬한다. 이러한 방식은 자연스럽게 가장 큰 값을 가장 뒤로 정렬하게 된다. 시간복잡도는 평균과 최악 모두 n^2 으로 같으며, 사용 메모리는 n이다. public class HelloWorld{ public static void main(String []args){ int[] nums = {2, 3, 6, 1, 4, 9, 10}; for(int i=0; i
2021. 4. 5.
[자료구조] 스택, 큐, 트리, 힙
스택 모든 원소들의 삽입과 삭제가 한쪽 끝에서만 이루어진다. 한쪽 끝에서 이루어지기에 가장 마지막에 입력된 원소가 가장 처음으로 제거된다. 즉, 후입선출 (LIFO, Last In First Out)이 이루어진다. 웹사이트 방문기록, 실행 취소, 함수 호출 등, 가장 마지막에 실행한 것을 가장 처음으로 가져와야 할 때 사용된다. 큐 한 쪽 끝에서는 삭제가, 다른 한 쪽에서는 삽입이 일어난다. 즉 삭제와 삽입이 되는 구간이 다르기 때문에 가장 먼저 삽입된 원소가 가장 처음 제거된다. 즉, 선입선출 (FIFO, First In First Out)이 이루어진다. 종류로는 선형 큐와 원형 큐가 있는데, 선형 큐는 정해진 사이즈의 끝에 도달하면 더 이상 추가가 불가능하지만 원형 큐는 가능하다. BFS 알고리즘, ..
2021. 4. 2.