  Consider that there are $k\le n$ agents in a simple, connected, and
undirected graph $G=(V,E)$ with $n$ nodes and $m$ edges. The goal of the
dispersion problem is to move these $k$ agents to distinct nodes. Agents can
communicate only when they are at the same node, and no other means of
communication such as whiteboards are available. We assume that the agents
operate synchronously. We consider two scenarios: when all agents are initially
located at any single node (rooted setting) and when they are initially
distributed over any one or more nodes (general setting). Kshemkalyani and
Sharma presented a dispersion algorithm for the general setting, which uses
$O(m_k)$ time and $\log(k+\delta)$ bits of memory per agent [OPODIS 2021].
Here, $m_k$ is the maximum number of edges in any induced subgraph of $G$ with
$k$ nodes, and $\delta$ is the maximum degree of $G$. This algorithm is the
fastest in the literature, as no algorithm with $o(m_k)$ time has been
discovered even for the rooted setting. In this paper, we present faster
algorithms for both the rooted and general settings. First, we present an
algorithm for the rooted setting that solves the dispersion problem in $O(k\log
\min(k,\delta))=O(k\log k)$ time using $O(\log \delta)$ bits of memory per
agent. Next, we propose an algorithm for the general setting that achieves
dispersion in $O(k (\log k)\cdot (\log \min(k,\delta))=O(k \log^2 k)$ time
using $O(\log (k+\delta))$ bits. Finally, for the rooted setting, we give a
time-optimal, i.e.,$O(k)$-time, algorithm with $O(\delta)$ bits of space per
agent.
