Sorting elements using insertion sort
If I am using insertion sort as shown below and have an array with some elements that are integers and then some that are null - How would I go about sorting that array with the null elements at the end using insertion sort?
For example: [1, 2, 6, null, 9, 5, 4, null, 2, 3] To: [1, 2, 2, 3, 4, 5, 6, 9, null, null]
It can be done with Comparator.nullsLast
:
public static <T extends Comparable<? super T>> void insertionSort(T[] array) {
Comparator<T> comparator = Comparator.nullsLast(Comparator.naturalOrder());
// ...
int compareTo = sorted;
while (compareTo >= 0 && comparator.compare(newElement, array[compareTo]) < 0) {
// ...
}
I converted the Comparable
comparison criteria into a Comparator
using Comparator.naturalOrder
.