- \cite{pettie:onlineverify} online lower bound
- mention Steiner trees
- mention matroids
-- sorted weights
- mention disconnected graphs
- Euclidean MST
- Some algorithms (most notably Fredman-Tarjan) do not need flattening
- add more context from thorup:aczero, also mention FP operations
- refs on Cartesian trees
- update notation.tex
-- iteration of Q-Heaps
Ranking:
We will combine the Iterated Jarn\'\i{}k's algorithm with the Q-heaps from section \ref{qheaps}.
We modify the first pass of the algorithm to choose $t=\log n$ and use the Q-heap tree instead
of the Fibonacci heap. From Theorem \ref{qh} and Remark \ref{qhtreerem} we know that the
-operations on the Q-heap tree run in constant time, so the whole first phase takes time~$\O(m)$.
+operations on the Q-heap tree run in constant time, so the modified first phase takes time~$\O(m)$.
Following the analysis of the original algorithm in the proof of Theorem \ref{itjarthm} we obtain
$t_2\ge 2^{t_1} = 2^{\log n} = n$, so the algorithm stops after the second phase.
\qed
+\para
+We can also use this technique if the edge weights are not integers, but they
+are already sorted. We already knew that the Kruskal's algorithm runs in time
+$\O(m\alpha(n))$ in such cases (Theorem \ref{kruskal}), but we can do better:
+
+\corn{MST for graphs with sorted edges}
+For a~graph with edges already sorted by their weights, we can find
+the MST in time $\O(m)$ on the Word-RAM.
+
+\proof
+We renumber the weights to $1,\ldots,m$, which does not change the MST
+(Lemma \ref{mstiso}), and find the MST using the previous theorem.
+
\rem
Gabow et al.~\cite{gabow:mst} have shown how to speed up the Iterated Jarn\'\i{}k's algorithm to~$\O(m\log\beta(m,n))$.
They split the adjacency lists of the vertices to small buckets, keep each bucket
per operation. For example, we can label vertices with identifiers of the
corresponding components and always recolor the smaller of the two components.
-\thm
+\thm\id{kruskal}%
Kruskal's algorithm finds the MST of a given graph in time $\O(m\log n)$
or $\O(m\timesalpha(n))$ if the edges are already sorted by their weights.