Я пишу программу, основанную на опросе, в которой есть метод сравнения совместимости людей с возможностями пользователя.
У меня есть алгоритм быстрой сортировки, который сортирует целые числа от наибольшего к наименее эффективному, однако мне нужно отсортировать массив людей вместе с массивом целых чисел (который является массивом совместимости людей). Как отсортировать массив людей, чтобы они соответствовали их целочисленной совместимости?
Алгоритм быстрой сортировки:
public static void qsort(People [] ppl, Integer [] a, Integer si, Integer ei){
//base case
if(ei<=si || si>=ei){}
else{
Integer pivot = a[si];
Integer i = si+1; Integer tmp;
//partition array
for(Integer j = si+1; j<= ei; j++){
if(pivot < a[j]){
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
i++;
}
}
//put pivot in right position
a[si] = a[i-1];
a[i-1] = pivot;
//call qsort on right and left sides of pivot
qsort(a, si, i-2);
qsort(a, i, ei);
}
}