반응형

Algorithm 5

[Sort] Merge

youtu.be/2YvFRAC8UTM https://www.youtube.com/watch?v=QAyl79dCO_k - Merge Sort - Quick Sort 분할정복법을 사용 - 분할 : 해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할 - 정복 : 각각의 작은 문제를 순환적으로 해결 - 합병 : 작은 문제의 해를 합하여(merge) 원래 문제에 대한 해를 구함 O(n log n) package algorithm.sort; public class Merge { private static void mergeSort(int arr[]){ int [] tmp = new int[arr.length]; mergeSort(arr, tmp, 0, arr.length-1); } private static ..

Algorithm 2020.07.07

[Sort] Insertion

- 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함. - 배열의 두 번째 데이터 부터 연산을 시작함. - 시간복잡도 : O(n^2) package algorithm.sort; public class Insertion { public static void main(String[] args) { int[] arr = {3,6,1,9,2, 7,4,8,5,0, 14,23,98,45,76, 34}; insertionSort(arr); System.out.println("==========================="); for(int item : arr){ System.out.print(item); System.out.print("|"); } System...

Algorithm 2020.07.07

[Sort] Bubble

- 두 인접한 원소를 검사하여 정렬하는 방법 - 시간복잡도 : O(n^2) - 세번의 회전에 걸쳐 정렬은 완료되었지만 프로그램은 남은 데이터의 비교연산을 계속 처리함. - 정렬은 비교연산을 통해 가장 큰 데이터 부터 끝에 정렬됨. 버블 정렬의 장점 - 구현이 쉽다. - 이미 정렬된 데이터를 정렬할때 가장 빠르다. 버블 정렬의 단점 - 다른 정렬에 비해 정렬 속도가 느리다. - 역순배열을 정렬할때 가장 느리다. package algorithm.sort; public class Bubble { public static void main(String[] args) { int[] arr = {3,6,1,9,2,7,4,8,5,0, 14,23,98,45,76,34}; bubbleSort(arr); System.ou..

Algorithm 2020.07.06

[Sort] Selection

- 주어진 데이터 중 최소값을 찾음 - 최소값을 맨 앞에 위치한 값과 교환 - 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬 - 시간복잡도 : O(n^2) 선택 정렬의 장점 - 데이터의 양이 적을 때 좋은 성능을 나타냄. - 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다. 선택 정렬의 단점 - 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다. package algorithm.sort; public class Selection { public static void main(String[] args){ int[] arr = {3,6,1,9,2,7,4,8,5,0, 14,23,98,45,76,34}; selectionSort(arr); System...

Algorithm 2020.07.05
반응형