32 lines
778 B
Java
32 lines
778 B
Java
package Sorts;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* The common interface of most sorting algorithms
|
|
*
|
|
* @author Podshivalov Nikita (https://github.com/nikitap492)
|
|
*/
|
|
public interface SortAlgorithm {
|
|
|
|
/**
|
|
* Main method arrays sorting algorithms
|
|
*
|
|
* @param unsorted - an array should be sorted
|
|
* @return a sorted array
|
|
*/
|
|
<T extends Comparable<T>> T[] sort(T[] unsorted);
|
|
|
|
/**
|
|
* Auxiliary method for algorithms what wanted to work with lists from JCF
|
|
*
|
|
* @param unsorted - a list should be sorted
|
|
* @return a sorted list
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
default <T extends Comparable<T>> List<T> sort(List<T> unsorted) {
|
|
return Arrays.asList(sort(unsorted.toArray((T[]) new Comparable[unsorted.size()])));
|
|
}
|
|
}
|