평균적으로 가장 좋은 성능을 내는 정렬 방식인 퀵소트입니다.
public void quickSort(Integer[] list, int l, int r) {
int pivot = list[l];
int left = l;
int right = r;
if(l >= r)
return;
OuterLoop : while (true) {
while (true) {
if ( list[right] < pivot ) {
list[left] = list[right];
left++;
if(left == right) {
list[left] = pivot;
break OuterLoop;
}
break;
}
right--;
if ( left == right ) {
list[left] = pivot;
break OuterLoop;
}
}//WhileRight
while (true) {
if ( list[left] > pivot ) {
list[right] = list[left];
right--;
if(left == right) {
list[left] = pivot;
break OuterLoop;
}
break;
}
left++;
if ( left == right ) {
list[left] = pivot;
break OuterLoop;
}
}//WhileLeft
}//OuterLoop
quickSort(list, l, left-1);
quickSort(list, left+1, r);
}
'PROGRAMMING > Java' 카테고리의 다른 글
자바 예제 코드 - 회문(palindrome) 확인 메소드 (0) | 2018.02.09 |
---|---|
트리셋(TreeSet)을 이용한 자동 로또 번호 생성 코드 (0) | 2018.02.09 |
자바 예제 코드 - 이중연결리스트 (Doulby Linked List) (0) | 2018.02.08 |
자바 예제 코드 - 단순연결리스트 (Singly Linked List) (0) | 2018.02.08 |
자바 예제 코드 - 스택 (Stack) (0) | 2018.02.08 |