For simplicity, let's assume A and B are solving the same problem. The speedup for alg B at 16 processor cores is about 4 whereas for A it is 3.
For general information, weak scaling means the amount of work per core is held constant so generally some aspect of problem size is increased in proportion to the number of processors. In this example, as the problem size and number of processors are increased, the amount of useful work done by each processor in both A and B decreases.
Alg A is "better" in the sense that time to solution for number of cores from 1 to 16 is always better than Alg B. Of course if the efficiency trends would continue then Alg B would be the 'better' choice at 18 cores and above. In fact, Alg B if scaling truly had a floor at 0.2, it might be very attractive for very large problems.
As other answers have pointed out, and efficiency of order 0.2 or 0.3 is generally considered poor though. My personal opinion is that time to solution is what matters and the best algorithm is the one that gets me the answer soonest within the constraint of available computational power. The question would be more interesting if there was a crossing in performance say if Alg A dropped to 10 % efficiency at 16 cores. There are simulation codes that have different parallel algorithms to choose from that are 'better' for different architectures or even different numbers of available cores. Parallelism always has a cost in communication and often enough also in greater numbers of floating point operations.