Выбор сортировки представляет собой комбинацию поиска и сортировки.
Принцип довольно прост, но я всегда предпочитаю диаграмму, чем огромные объяснения.
Начать указатель в начале вашегоunsorted
массив.Затем для каждого значения массива ищите минимальное значение (или ищите автомобиль в алфавитном порядке) в вашем массиве и переключайте положение основанного Car
с помощью указателя (который тоже Car
)
Затем вы можете продвинуть указатель на следующий элемент массива.
Вот базовая реализация для этого
public static Car[] doSelectionSort(Car[] elementaros) {
for (int i = 0; i < elementaros.length - 1; i++) {
int index = i;
for (int j = i + 1; j < elementaros.length; j++) {
if (elementaros[j].getName().compareTo(elementaros[index].getName()) < 0) {
index = j;
}
}
Car nextOrderedCar = elementaros[index];
elementaros[index] = elementaros[i];
elementaros[i] = nextOrderedCar;
}
return elementaros;
}
Просто, например, ради, я представляю ваш объекттипа Car
имеет имя, которое мы могли бы использовать для сравнения.
ОБНОВЛЕНИЕ 1:
Я прочитал вашепервоначальный вопрос слишком быстро, и это побуждает меня ответить на совершенно другой алгоритм сортировки.Мой плохой.
Я нашел здесь реализацию, которая делает свое дело:
Надеюсь, это поможет.