반응형

MIG/알고리즘 3

[알고리즘]mergeSort 병합정렬

안녕하세요 ki입니다.오늘 내용은 병합정렬입니다. mergeSort 병합정렬분할 정복기법을 사용, 리스트를 분할하고 정렬된 리스트를 병합하여 전체 리스트를 정렬하는 알고리즘 시간복잡도시간 복잡도는 퀵정렬과 같은 O(n log n) 입니다.  병합정렬 과정1. 분할 : 리스트를 균등하게 반으로 나눔2. 정렬 : 반으로 나눈 리스트를 정렬3. 병합 : 정렬된 리스트를 하나로 병합  단점임시로 저장할 공간이 필요하여 메모리가 사용됨됨 자바코드로 구현하기public class MergeSort { // mergeSort는 임시 저장소가 필요하여 배열에 크기 만틈 임시저장소 생성 private static void mergeSort(int[] arr){ int[] tmp = new int[..

MIG/알고리즘 2024.06.18

[알고리즘] 퀵정렬

안녕하세요 ki입니다.오늘 공부 내용은 퀵정렬입니다.지난 글에서는 시간복잡도에 대해 알아보았습니다.그중 O(n log n)인 퀵정렬을 공부를 해봤습니다.2024.06.12 - [MIG/알고리즘] - [알고리즘] 시간 복잡도를 알아보자 [알고리즘] 시간 복잡도를 알아보자안녕하세요 ki입니다.오늘은 시간 복잡도에 대해 공부하려고 합니다.저는 프로그래머스에서 알고리즘 공부를 종종 하고 있습니다.그중 시간복잡도에 대해 알게 됐고 그것에 대해 공부하려고 합kkkkt.tistory.com QuickSort분할 정복(Divide and Conquer) 기법을 사용하는 효율적인 정렬 알고리즘평균적으로 매우 빠르고, 실제로 많이 사용되는 정렬 알고리즘 시간 복잡도평균적으로 O(n log n)이지만 최악의 경우 O(n^2..

MIG/알고리즘 2024.06.14

[알고리즘] 시간 복잡도를 알아보자

안녕하세요 ki입니다.오늘은 시간 복잡도에 대해 공부하려고 합니다.저는 프로그래머스에서 알고리즘 공부를 종종 하고 있습니다.그중 시간복잡도에 대해 알게 됐고 그것에 대해 공부하려고 합니다. 시간복잡도(Time Complexity)시간복잡도는 알고리즘의 효율성을 평가하는 중요한 기준 중 하나입니다. 이 기준으로 알고리즘의 실행 시간이 입력 값에 따라 어떻게 변하는지 예측할 수 있는데 예를 들어 입력 값 n이 커질 때 알고리즘이 얼마나 빠르게 실행 됐는지에 따른 결과를 분석하는 데 사용합니다.   시간복잡도 표기법시간복잡도를 표기하기 위해 대표적인 방법은 빅오(Big-O) 표기법입니다.빅오 표기법은 점근 표기법라고도 불리는데 빅오표기법 외에 빅 오메가 표기법(Big Omega) , 빅 세타 표기법(Big T..

MIG/알고리즘 2024.06.12