Let A and B be two sets of n points in the plane, and let M be a tone-to-one) matching between A and B. Let min(M), max(M), and Sigma(M) denote the length of the shortest edge, the length of the longest edge, and the sum of the lengths of the edges of M respectively. The uniform matching problem (also called the balanced assignment problem, or the fair matching problem) is to find M-U*, a matching that minimizes max(M)-min(M). A minimum deviation matching M-D* is a matching that minimizes (1/n)Sigma(M)-min(M). We present algorithms for computing M-U* and M-D* in roughly O(n(10/3)) time. These algorithms are more efficient than the previous O(n(4))-time algorithms of Martello and Toth [19] and Gupta and Punnen [11], who studied these problems for general bipartite graphs. We also consider the (non-bipartite version of the) bottleneck matching problem in higher dimensions. We extend the planar results of Chang et al. [4] and Su and Chang [22], and show that given a set A of 2n points in d-space, it is possible to compute a bottleneck matching of A in roughly O(n(3/2)) time, for d less than or equal to 6, and in subquadratic time, for d > 6.