private static void quickSort(int[] arr, int start, int end) {
if (start > end) return;
int pivot = end, left = start, right = end - 1;
while (left <= right) {
while (left < arr.length && arr[pivot] > arr[left]) left++;
while (right >= 0 && arr[pivot] < arr[right]) right--;
int temp = 0;
if (right < left) {
temp = arr[left];
arr[left] = arr[pivot];
arr[pivot] = temp;
} else {
temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
quickSort(arr, start, right);
quickSort(arr, left + 1 , end);
}
지금까지 사고력을 요구하는 코딩 테스트 문제만 풀고 단순 자료구조나 정렬 알고리즘을 직접 구현해본적이 없는 것 같아서 앞으로 하나씩 직접 구현해보기로 했다.
설명은 글로는 이해하기 힘들어서 유튜브에 여러 강의 영상이 있으니 참고하면 된다.
처음에는 나도 잘 이해가 안 되다가 계속 보다보니 어떤 방식인지 이해가 됐다.
'공부 > Java' 카테고리의 다른 글
[Java] 자바 Reflection(리플렉션)을 이용하여 동적 개수 파라미터 받아 문자열로 된 메서드 실행하기 (1) | 2024.11.01 |
---|---|
[Java] 문자열 그대로 클래스로 만들어 컴파일 후 실행하기 (0) | 2024.09.28 |
[Java] 동적 프록시 (Dynamic Proxy) (0) | 2024.07.23 |
[Java][Spring] ThreadLocal 사용하기 (0) | 2024.07.13 |
[Java] 람다식 (Lambda expression) (0) | 2024.02.23 |