In this paper, we present the first output-sensitive algorithm to compute the persistence diagram of a filtered simplicial complex. For any Γ > 0, it returns only those homology classes with persistence at least Γ. Instead of the classical reduction via column operations, our algorithm performs rank computations on submatrices of the boundary matrix. For an arbitrary constant δ ∈ (0, 1), the running time is O(C(1−δ)ΓR(n) log n), where C(1−δ)Γ is the number of homology classes with persistence at least (1−δ)Γ, n is the total number of simplices, and R(n) is the complexity of computing the rank of an n×n matrix with O(n) nonzero entries. Depending on the choice of the rank algorithm, this yields a deterministic O(C(1−δ)Γn2.376 ) algorithm, a O(C(1−δ)Γn2.28 ) Las-Vegas algorithm, or a O(C(1−δ)Γn2+ǫ ) Monte-Carlo algorithm for an arbitrary ǫ > 0. Categories and Subject Descriptors F.2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical A...