Занятие 7. Справочник

Занятие 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;  
  }
}