Предположим, у меня есть массив A[]={8, 9, 11, 14, 16, 20};
, который я должен сортировать по другому массиву B[]={6, 5, 1, 2, 4, 3};
.Сортировка массива в соответствии с последовательностью другого массива
Сортировано A
будет A[]={20, 16, 8, 9, 14, 11};
Итак, как A
будет отсортирован сказано в B
.
Первый элемент B
является самым большим, поэтому первый элемент A
также будет самым большим. Третий элемент B
является самым маленьким, так третий элемент A
также будет наименьшее
Если B
было что-то отсортированные нисходящее как {100, 84, 74, 51, 5, 1}
Тогда A
также будут рассортированы по убыванию.
Примеры:
1. если B = {12, 8, 14, 156, 2, 84}
, A
было бы {11, 9, 14, 20, 8, 16}
2. если B = {2, 3, 45, 0, 7, 56}
, A
будет {9, 11, 16, 8, 14, 20}
его, как если у меня есть несколько друзей разных возрастов, и я хочу, чтобы дать им что-то по до их возраста. Самый старший человек получит самый большой ... меньше, чем он получит меньший, чем тот ... и так далее.
Я видел похожие вопросы, но они не похожи на мою проблему.
Моя идея - сортировать как первые. А потом перестройте.
Есть ли быстрое решение?
Именно этот вопрос был здесь несколько дней, может быть, неделю назад. За исключением ваших литералов массива, не указывайте, как именно 'B' задает порядок сортировки' A'. Проверьте их, пожалуйста. – bipll
Я понятия не имею, как 'B' определяет порядок' A', пожалуйста, уточните критерии сортировки. –
A 6 в B означает, что шестой элемент A должен находиться там, где находится 6. 6 в начале, поэтому шестой элемент A должен перейти в начало. – chris