신규 블로그를 만들었습니다!
package sort;
public class QuickSort {
public static void quick_sort(int[] map, int left, int right) {
int pivot = map[(right + left) / 2];
System.out.println("pivot : " + pivot);
int l = left;
int r = right;
while (l < r) {
// pivot 보다 큰 숫자가 나올때까지
while (map[l] < pivot) {
l++;
}
// pivot 보다 작은 숫자가 나올때까지
while (pivot < map[r]) {
r--;
}
// 서로 스왑
if (l <= r) {
int tmp = map[l];
map[l] = map[r];
map[r] = tmp;
l++;
r--;
}
}
// 왼쪽 실행
if (left < r) {
quick_sort(map, left, r);
}
// 오른쪽 실행
if (l < right) {
quick_sort(map, l, right);
}
}
public static void main(String[] args) {
int[] map = { 10, 4, 7, 2, 6, 9, 3, 6, 2, 4, 8 };
quick_sort(map, 0, map.length - 1);
for (int i = 0; i < map.length; i++) {
System.out.print(map[i] + " ");
}
}
}
관련 글
2018/05/02 - [Algorithm] - 자료구조 :: JAVA를 이용한 퀵 정렬 (JAVA 구현)
2018/04/28 - [Algorithm] - 자료구조 :: 퀵 정렬 Quick sort (c/c++ 구현)
'취업 및 공부' 카테고리의 다른 글
공부 :: Circulation Queue 환형 큐 (JAVA) (1) | 2018.03.30 |
---|---|
공부 :: Stack 2개를 이용해서 Queue 만들기 (자바/JAVA) (1) | 2018.03.29 |
공부 :: Stack / 스택 프로그래밍 (1) | 2018.03.29 |
공부 :: rank 알고리즘 (4) | 2018.03.29 |
공부 :: 최대공약수, 최소공배수, N개의 수 최소공배수 알고리즘 (4) | 2018.03.29 |
최근댓글