반응형
퀵 정렬은 가장 빠른 정렬 알고리즘 중의 하나로 시간 복잡도는 평균적으로 O(nlog n)입니다.
퀵 정렬 예시
public class Main {
public static void main(String[] args) {
int data[] = {1,5,9,7,6,4,23};
quickSort(data, 0, data.length - 1);
for(int i=0; i<data.length; i++){
System.out.println("data["+i+"] = "+data[i]);
}
}
public static void quickSort(int[] data, int l, int r){
int left = l;
int right = r;
int pivot = data[(l+r)/2];
do{
while(data[left] < pivot) left++;
while(data[right] > pivot) right--;
if(left <= right){
int temp = data[left];
data[left] = data[right];
data[right] = temp;
left++;
right--;
}
}while (left <= right);
if(l < right) quickSort(data, l, right);
if(r > left) quickSort(data, left, r);
}
}
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 백준 10815번: 숫자 카드 JAVA (0) | 2020.12.21 |
---|---|
[알고리즘] 백준 2751번: 수 정렬하기 2 Java (0) | 2020.10.26 |
[알고리즘] 백준 2750번 수 찾기 Java (0) | 2020.08.28 |
[알고리즘] 백준 1920번 수 찾기 Java (0) | 2020.08.25 |
[알고리즘] 백준 2884번 알람 시계 Java (0) | 2020.08.18 |
댓글