public class QuickSort {
public void sort(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) sort(data, l, right);
if(r > left) sort(data, left, r);
}
public static void main(String[] args) {
int data[] = {66, 10, 1, 34, 5, -10};
QuickSort quick = new QuickSort ();
quick.sort(data, 0, data.length - 1);
for(int i=0; i<data.length; i++){
System.out.println("data["+i+"] : "+data[i]);
}
}
}
'소프트웨어 사색' 카테고리의 다른 글
| 초보자를 위한 동시성과 Future (1) | 2017.02.03 |
|---|---|
| 파이썬에 대한 즉흥적인 펜레터 (0) | 2017.01.21 |
| 스칼라를 이용한 개발 이후.. (0) | 2016.12.10 |
| 하이브리드 앱이란? (0) | 2016.11.30 |
| 궁극의 마스터 패턴 (부제 : 모든 패턴이 통합되는 순간 세상은 재편된다) (0) | 2016.11.28 |