본문 바로가기

병합정렬2

[정렬] 백준 1517번 문제버블정렬에 관한 이야기 진행- 인접해 있는 두 수를 swap하며 정렬 진행- (배열 크기 + 배열 제공)- 버블정렬을 진행할 때, swap하는 횟수를 구하는 프로그램을 작성하시오시간 제한 : 1초버블정렬 시간복잡도 : O(N^2)배열 범위 : 1 문제분석버블정렬로 진행할 시, 시간 초과로 인해 swap을 구하더라도 문제에 제시되어있는 시간을 지킬 수가 없다.따라서, O(NlogN)을 가진 정렬하는 방식을 채택해야함(병합 정렬 선택)병합정렬 선택시 주의할점)병합정렬이 swap되는 횟수를 구하는 것이 아닌, 버블정렬이 swap되는 횟수를 구해야함인덱스 위치의 변화를 통한 , 버블정렬의 swap 횟수를 구해야함예시2를 이동시에 5와 6을 뒤로 보내야한다 ( 버블정렬 시 swap되는 항목 )(2,5) , (.. 2024. 11. 13.
[정렬] 병합정렬 정렬정렬 알고리즘정의시간복잡도삽입대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식O(N) ~ O(N^2)버블데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식O(N^2)선택대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식O(N^2)퀵pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식O(NlogN) ~ O(N^2)힙이진트리를 이용하여 최대힙(오름차순)/최소힙(내림차순) 트리를 구성해정렬하는 방식O(NlogN)병합이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식O(NlogN) + 추가적인 메모리 필요기수데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식O(N) + 추가적인 메모리 필요 병합정렬병합.. 2024. 11. 12.