Added optimization in the n^2 loop of findBestMatch()

Changed type of collection to Vector and hoisted out some zip()ing from
the loop. With input list sizes of 500 it approximately halved the time for
me.