반응형 [C++로 배우는 알고리즘과 자료구조 심화] Day 29: 병렬 알고리즘 (Parallel Algorithms) 병렬 알고리즘 (Parallel Algorithms)병렬 알고리즘은 여러 프로세서가 동시에 작업을 수행하여 문제를 해결하는 알고리즘입니다. 이러한 알고리즘은 대규모 데이터 처리 및 고성능 컴퓨팅에 매우 유용합니다. 병렬 알고리즘을 설계할 때는 데이터 병렬성, 작업 병렬성, 동기화 및 통신 비용 등을 고려해야 합니다.병렬 알고리즘의 주요 기법데이터 병렬성: 동일한 작업을 여러 데이터에 동시에 적용합니다.작업 병렬성: 여러 작업을 동시에 수행합니다.동기화: 작업 간의 일관성을 유지하기 위해 동기화 메커니즘을 사용합니다.문제 예시: 병렬 퀵 정렬퀵 정렬은 분할 정복 알고리즘으로, 병렬화가 가능한 부분이 많습니다. 병렬 퀵 정렬은 배열을 분할한 후, 각 분할된 부분 배열을 별도의 스레드에서 정렬하여 병렬 처리를.. 2024. 8. 1. [C++로 배우는 알고리즘과 자료구조] Day 19: 퀵 정렬 (Quick Sort) 퀵 정렬 (Quick Sort)퀵 정렬은 분할 정복(Divide and Conquer) 기법을 사용하는 효율적인 정렬 알고리즘입니다. 배열을 피벗(Pivot)을 기준으로 두 개의 하위 배열로 나눈 다음, 각각을 정렬합니다. 퀵 정렬은 평균적으로 매우 빠른 정렬 알고리즘으로 간주됩니다.퀵 정렬의 시간 복잡도:평균의 경우: (O(n \log n))최악의 경우: (O(n^2))최선의 경우: (O(n \log n))퀵 정렬의 공간 복잡도:(O(\log n)) (재귀 호출 스택 공간)퀵 정렬 구현퀵 정렬의 주요 단계:분할 (Partition): 피벗을 기준으로 배열을 두 부분으로 나눕니다.정복 (Conquer): 하위 배열을 재귀적으로 정렬합니다.결합 (Combine): 분할된 하위 배열이 정렬된 상태이므로 추가.. 2024. 8. 1. [알고리즘] 3. 정렬 Index 1. 정렬 2. 버블 정렬 3. 삽입 정렬 4. 선택 정렬 5. 퀵 정렬 6. 병합 정렬 7. 계수 정렬 8. 추천 문제 9. 참고자료1. 정렬정렬(Sort)- 데이터를 특정한 기준에 따라 순서대로 나열하는 것 2. 버블 정렬버블 정렬(Bubble Sort) def bubble_sort(arr: list): for i in range(len(arr)): for j in range(len(arr)-1): if (arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr3. 삽입 정렬삽입 정렬(Insertion Sort)- 처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입- .. 2024. 7. 19. 이전 1 다음 반응형