import java.util.*;
import java.io.*;

/**
 * Superclase para distintas implementaciones de algoritmos de ordenamiento.
 * @author Agustin J. Gonzalez
 */
public abstract class Ordenador{
	/** Ordena una arreglo de objetos Comparable.
	* @param A Arreglo de objetos comparables.
	*/
	public abstract void ordenar(Comparable[] A);

	/** Obtiene el numero de comparaciones realizadas en la ultima invocacion a ordenar.
	* @return numero de comparaciones hechas para ordenar el arreglo.
	*/
  	public abstract int getNumComparaciones();

	/** Obtiene el numero de intercambio o enroques de datos (swaps) durante la ultima operacion de ordenamiento.
	* @return numero de intercambios de datos en ultima comparacion.
	*/
  	public abstract int getNumIntercambios();
}