알고리즘 풀이 - 프로그래머스(K번째 수(Lv 1), 정렬) 관련글 Quick 정렬 관련 포스팅은 여기를 참조 Stream 관련 포스팅은 추후 업데이트 1. 개요 문제의 링크는 여기를 참조 문제의 내용은 아래의 더보기를 클릭하여 참조 더보기 현재 배열의 일부를 추출하여 정렬 후 해당 추출된 부분 중 주어진 index의 숫자 하나를 뽑아 전체를 배열로 만들어 반환하는 문제 2. 풀이 이 문제는 너무 간단한 문제라서 굳이 포스팅을 하지 않아도 되겠으나, 퀵 정렬의 직접 구현과 Stream 사용 연습을 하는 것을 고려하여 포스팅 한다. 정렬 관련 문제는 정렬 자체를 항상 직접 구현하는 연습을 하는 것이 좋다. 여기서는 정렬을 직접 구현하고, 숫자를 추출하는 것을 Stream을 통해서 하는 코드를 작성하여 풀었다. 구체적인 것은 코드를 아래에서 확인. 3. 코드 아래의 .. 알고리즘 풀이(Problem Solving)/자료구조 4년 전
알고리즘 - Quick(퀵) vs Merge(병합) 정렬(+TCO, 참조 지역성) 해당 포스팅은 표준(Standard)적인 퀵 / 병합 정렬의 경우에 대해 설명합니다. 각 정렬 방식의 응용에 따라 다양한 Variation이 있는 부분은 감안하지 않았습니다. 퀵 정렬과 병합 정렬 차이 우선 기본적으로 퀵 / 병합 정렬이 무엇인지 다시 한 번 간단히 알아보자.(관련 포스팅은 여기 → 퀵 / 병합) 귀찮은 분들을 위해 간단히 코드는 아래의 접힌 글에 써놓았다. 더보기 1) 퀵 정렬 public class QuickSort{ public static void main(String[] args){ int[] arr = new int[100]; for(int i=0; i < arr.length; i++){ arr[i] = (int)(Math.random() * 100); } quickSort(a.. 자바 프로그래밍/알고리즘(Algorithm) 4년 전
자료구조 - 정렬 4 (Quick) 전체 정렬 개요의 설명은 여기를 참조 Bubble / Selection / Insertion 정렬의 설명은 여기를 참조 Shell 정렬의 설명은 여기를 참조 Merge 정렬의 설명은 여기를 참조 Heap 정렬은 우선순위 큐에서 사용하는 정렬이므로 해당 포스팅 여기를 참조 Counting 정렬의 설명은 여기를 참조 Radix 정렬의 설명은 여기를 참조 Bucket 정렬의 설명은 여기를 참조 Topological 정렬의 설명은 여기를 참조 Quick Sort(퀵 정렬) 이름만 봐도 매우 빠르게 동작할 것 같다. 우선 애니메이션으로 한 번 살펴보자. 퀵 정렬은 영국의 Computer Scientist인 Tony Hoare 가 고안한 방식이다. 위의 애니메이션에서 주목할 점은 Pivot이라는 문구이다. 이 Pi.. 자바 프로그래밍/자료구조(Data Structure) 4년 전