我正在做算法课的作业,我必须以类似于此图的方式展示快速排序算法的每个步骤中特定数组的样子:(来自 CLRS 书中的页面)。
我想知道如何绘制一个看起来像书中的数组。特别是,我想知道如何(按从最重要到最不重要的顺序)
绘制一个数组。
将字母放在节点或空白处上方。
绘制划分数组的黑条。
使用灰色或浅灰色自定义单元格。
答案1
也许像这样
\documentclass{article}
\usepackage{colortbl}
\makeatletter
\newcolumntype{W}{!{\smash{\vrule
\@width 4\arrayrulewidth
\@height\dimexpr\ht\@arstrutbox+2pt\relax
\@depth\dimexpr\dp\@arstrutbox+2pt\relax}}}
\makeatother
\definecolor{gray}{rgb}{.7,.7,.7}
\begin{document}
\begin{tabular}{|c|c|cWc|cWc|cWc|}
\multicolumn{1}{c}{$p$}&
\multicolumn{1}{c}{}&
\multicolumn{1}{c}{$i$}&
\multicolumn{1}{c}{}&
\multicolumn{1}{c}{}&
\multicolumn{1}{c}{$j$}&
\multicolumn{1}{c}{}&
\multicolumn{1}{c}{$r$}\\
\cellcolor{gray}2&
\cellcolor{gray}1&
\cellcolor{gray}3&
\cellcolor{black}&
\cellcolor{black}&
5&
6&
4
\end{tabular}
\end{document}