반응형

정렬 2

[알고리즘] 4강 병합정렬 (merge sort)

4강 합병 정렬(merge sort) 합병 정렬은 다음과 같은 단계를 가진다 분할 : 해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할 정복 : 각각의 작은 문제를 순환적으로 해결 합병 : 작은 문제의 해를 합하여(merge) 원래 문제에 대한 해를 구함 [6, 4, 1, 2, 3, 5, 7, 8] 을 예시로 합병 정렬하면 아래 그림과 같은 단계로 정렬이 진행된다. 1차원 배열을 가장 작은 단위, 즉 1의 단위까지 쪼갠다. 가장 작은 단위로 쪼갠 후 배열의 왼쪽/오른쪽 값을 비교한다. 작은 값을 새 배열에 추가하고, 다음 작은 값을 새 배열에 추가한다. 비교하는 과정하고 추가하는 과정이 종료되는 어느 한쪽 배열에 값은 남게 되는 데 이때 반복문을 이용해 왼쪽 배열부터 새 배열에 모두 추가하고, 오..

[알고리즘] 3강 기본적인 정렬 알고리즘 정리

3강 기본적인 정렬 알고리즘 정리 정렬 알고리즘 종류 simple, slow bubble sort insertion sort selection sort quick quick sort merge sort heap sort O(N) radix sort 1. Selection Sort (선택 정렬) 선택 정렬은 배열의 값 중 하나를 선택해 기준으로 두고 정렬하는 알고리즘이다. data[Int] 변수가 있을 때 배열의 data[i]을 기준으로 두어 변수에 값을 저장한다. (data[i]을 배열의 min 값으로 예상) min 값과 data[i+1] 값을 비교하여 data[i+1] > min 이면 min에 data[i+1] 값을 대입한다. data[i] 과 min 값을 swap 한다. 1~3번까지 반복한다. // ..

728x90
반응형