Блог пользователя xanaxxx

Автор xanaxxx, история, 14 месяцев назад, По-английски

So there is this known problem: you have 2 arrays (let's say a and b) both of size n and you have to arrange them in such a way that the value $$$\sum_{i=1}^{n}a_{i}b_{i}$$$ is as small as possible. Intuitively, an idea is to pair the biggest element in a with the smallest in b, the second largest in a with the second smallest in b and so on. But I would like to see some sort of proof because this only relies on intuition. Thanks in advance.

Example: initially a = {3, 1, 1}, b = {6, 5, 4}. After performing the algorithm a = {3, 1, 1}, b = {4, 5, 6}. Answer is 3*4 + 1*5 + 1*6 = 23

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
14 месяцев назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

You can just prove it in this way like If u try to swap any 2 pairs of the correct combination (bigger a with smaller b's) you would get the final sum bigger than the previous.

»
14 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится