From J.M's comment:
Usually in the sparse matrix case, one only wants the biggest few or
smallest few, and only very rarely the entire spectrum. If you're
asking for a full eigendecomposition, then the effort needed for a
sparse array should not be too different from the effort needed for a
dense array.
I checked the timing for a few dense and sparse arrays, both with few and with many non-zero elements.
n = 50;
s = SparseArray[
Append[
Thread[
RandomInteger[{1, 144}, {n, 2}] -> RandomInteger[{1, 20}, n]
], {i_, i_} -> 1],
{144, 144}
]
All eigenvalues:
Do[Quiet[Eigenvalues[s]], {1}]; // AbsoluteTiming
t = s // Normal;
Do[Eigenvalues[t], {1}]; // AbsoluteTiming
Only 2 eigenvalues
Do[Quiet[Eigenvalues[s, 2]], {1}]; // AbsoluteTiming
t = s // Normal;
Do[Eigenvalues[t, 2], {1}]; // AbsoluteTiming
So, not much difference between sparse and dense matrices. Having only a few eigenvalues calculated saves a bit of time but only if the matrix contains many non-zero elements.