Занятие 7. Справочник
Быстрая сортировка
static void quickSort(int a[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = a[(left + right) / 2];
while (i <= j) {
while (a[i] < pivot)
i++;
while (a[j] > pivot)
j--;
if (i <= j) {
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
};
if (left < j)
quickSort(a, left, j);
if (i < right)
quickSort(a, i, right);
}
Интерфейс Comparable
В классе, элементы которого планируется сортировать нужно реализовать интерфейс Comparable, то есть реализовать функцию compareTo
import java.util.*;
public class SortClass implements Comparable
{
//…
/* Перегрузка метода compareTo */
public int compareTo(Object obj)
{
SortClass tmp = (SortClass)obj;
if(...)
{
/* текущее меньше полученного */
return -1;
}
else if(...)
{
/* текущее больше полученного */
return 1;
}
/* текущее равно полученному */
return 0;
}
}