Given an undirected graph G with n nodes and m edges, we address the problem of finding a largest collection of edge-disjoint cycles in G. The problem, dubbed CYCLE PACKING, is very closely related to a few genome rearrangement problems in computational biology. In this paper, we study the complexity and approximability of CYCLE PACKING, about which very little is known although the problem is natural and has practical applications. We show that the problem is APX-hard but can be approximated within a factor of 0 (log n) by a simple greedy approach. We do not know whether the O(log n) factor is tight, but we give a nontrivial example for which the ratio achieved by greedy is not constant, namely Omega(rootlog n/(log log n)). We also show that, for "not too sparse" graphs, i.e., graphs for which m = Omega (n(l+l/t+delta)) for some positive integer t and for any fixed 8 > 0, we can achieve an approximation arbitrarily close to 2t/3 in polynomial time. In particular, for any epsilon > 0, this yields a 4/3 + epsilon approximation when m = Omega(n(3/2+delta)), therefore also for dense graphs. Finally, we briefly discuss a natural linear programming relaxation for the problem. (C) 2003 Elsevier Inc. All rights reserved.