Имеется 2 массива с числами. Элементы в них находятся в некой зависимости, т.е. 0 элемент 1 массива "связан" с 0 элементом 2 массива и т.д. Необходимо как-то отсортировать объекты по убыванию в отношении Vi/Wi и записать это в новое множество или массив. И далее при необходимости когда объекты оттуда будут браться, как-то получать их изначальные отношения.
static int[] values = new int[] {10, 8, 3, 8, 8}; // цены
static int[] weights = new int[] {8, 3, 4, 3, 3}; //вес предметов
PS: решаю задачу о рюкзаке методом жадных алгоритмов
import java.util.Collections;
import java.util.Arrays;
import java.util.List;
public class HelloWorld{
public static void main(String []args){
List<Entity> entities = Arrays.asList(new Entity(3,5),new Entity(5,7),new Entity(3,1),new Entity(1,10));
Collections.sort(entities);
entities.forEach(System.out::println);
}
}
class Entity implements Comparable<Entity> {
private int weight;
private int cost;
public Entity(int weight, int cost) {
this.weight = weight;
this.cost = cost;
}
private double getMeasure(){
return cost * 1.0 / weight;
}
@Override
public int compareTo(Entity entity) {
double thisMeasure = getMeasure();
double thatMeasure = entity.getMeasure();
if(thisMeasure < thatMeasure) return -1;
return thisMeasure > thatMeasure ? 1 : 0;
}
@Override
public String toString() {
return "Entity{" +
"weight=" + weight +
", cost=" + cost +
", difference=" + getMeasure() +
'}';
}
}
Можно сделать так:
List<Integer> sortedValues = Stream
.generate(new Supplier<Map.Entry<Integer, Integer>>() {
private int index = -1;
@Override
public Map.Entry<Integer, Integer> get() {
index++;
return new AbstractMap.SimpleEntry<>(values[index], weights[index]);
}})
.limit(values.length)
.sorted(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.collect(toList());
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как сделать такую маску, что-бы можно было правый квадрат центрировать как сверху так и снизу (то есть что-бы можно было привязать паралакс)?
недавно начал изучать ReactJS(новичек) и столкнулся с маленькой проблемкой
Существует вопрос, каким образом можно реализовать совместимость WordPress и NuxtJS? Может быть статейки какие-то или видео на youtube? Может у кого-то...
Код, приведенный ниже, взят из доков, но в ответе приходит пустая строка: