라벨이 Algorithm인 게시물 표시

Algorithm과 함께 - Quick sort.

이미지
Quick Sort  Quick Sort는 빠른 Sort 중 하나로 매일 까먹어서 정리하기 위해 작성했다. 원리 QuickSort 정렬 원리  원리는 Pivot(=기준값)을 중심으로 작은 값과 큰 값을 바꾸는 방법로 정렬한다. 1차 정렬이 끝나면 정렬의 대상을 다시 분리한다.  Pivot 을 결정한다. 정렬한다. 2개로 쪼갠다. 다시 1번으로 돌아간다. 코드  그런데 정렬 갯수가 적어지면, Quick Sort 보다 일반 정렬이 더 빠르다. 그래서 Quicksort를 진행하는 Limitation을 줬다. package org . example . algorithm . sort . quicksort ; import java.util.Arrays ; import java.util.Random ; import java.util.Stack ; public class Quicksort { private static final int QUICKSORT_SORT_LIMIT = 10 ; static void swap ( int [] a , int idx1 , int idx2 ) { int t = a [ idx1 ]; a [ idx1 ] = a [ idx2 ]; a [ idx2 ] = t ; } // 퀸 정렬 static void quickSort ( int [] a ) { Stack < Integer > leftIndexStack = new Stack <>(); Stack < Integer > rightIndexStack = new Stack <>(); leftIndexStack . push ( 0 ); rightIndexStack . push ( a . length - 1 ); int ...