Как правило, вы должны принять одно из скорости или цены в качестве основного, а затем получить автомобили с тем же значением этого основного и отсортировать эти значения в порядке возрастания / убывания, а основные цвета также принимаются в порядке возрастания / убывания по мере необходимости.
Пример:
с1 (20,1000) с2 (30,5000) с3 (20, 500) с4 (10, 3000) с5 (35, 1000)
Предположим, что Car (скорость, цена) является показателем в приведенном выше списке, а основным является скорость.
1 Получить машину с минимальной скоростью
2 Тогда получите все машины с одинаковым значением скорости
3 Упорядочить эти значения в порядке возрастания цены автомобиля
4 Получите следующий автомобиль со следующим минимальным значением скорости и повторите описанный выше процесс
с4 (10, 3000)
с3 (20, 500)
с1 (20, 1000)
с2 (30, 5000)
с5 (35, 1000)
Если вы опубликуете, на каком языке вы их используете, это будет полезно, поскольку некоторые языковые конструкции упрощают реализацию. Например, LINQ делает вашу жизнь очень легкой в этой ситуации.
cars.OrderBy(x => x.Speed).ThenBy(p => p.Price);
Edit:
Теперь у вас есть список, согласно размещению этих автомобилей в сетке, если вы не знаете, что будет столько предопределенных автомобилей с этими значениями, вы ничего не можете ожидать, если будете двигаться с фиксированным размером сетки, как Вы делаете сейчас.
Один из вариантов - использовать неравномерную сетку, если вы предпочитаете, чтобы в каждом ряду были автомобильные предметы определенной скорости, но это применимо, только если вы знаете, что будет значительное количество автомобилей с одинаковым значением скорости. .
Таким образом, в каждом ряду машины будут иметь одинаковую скорость, показанную в сетке.
Спасибо