Let A and B be two sets of n points in the plane, and let M be a (one-to-one) matching between .4 and B. Let rain(M), max(M), and Σ(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) - rain(M). A minimum deviation matching M* D is a matching that (1/n)Σ(M) – min(M). We present algorithms for computing M* U and M* D in roughly O(n10/3) time. These algorithms are more efficient than the previous O(n4)-time algorithms of Martello and Toth  and Gupta and Punnen , 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.  and Su and Chang , 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(n3/2) time, for d ≤ 6, and in subquadratic time, for d > 6.