我有一个学校作业,排序算法的可视化(合并排序,冒泡排序)。我查看了 Processing、JsAnim、cake 和其他几个库,但不确定它们是否对我的应用程序有用(可视化排序算法)。
我熟悉 C# 和小 javascript。任何适合我需要的图书馆?
非常感谢
我有一个学校作业,排序算法的可视化(合并排序,冒泡排序)。我查看了 Processing、JsAnim、cake 和其他几个库,但不确定它们是否对我的应用程序有用(可视化排序算法)。
我熟悉 C# 和小 javascript。任何适合我需要的图书馆?
非常感谢
您尚未明确要使用哪种语言。由于您的标签,我将假定它是 java 。如果您被允许使用外部资源,您可以使用普林斯顿大学的 Robert Sedgewick 博士和 Kevin Wayne 博士编写的对象。它被称为 StdDraw,来自他们的书 Algorithms, 4th Edition。源代码的网址在这里:
http://algs4.cs.princeton.edu/stdlib/StdDraw.java.html
如果你不能使用外部资源,我会推荐 Java Swing Package。
我在编写并行排序时有这样的任务。我使用了 C# ZedGraph 库:
主要思想是将排序元素的值表示为具有适当高度的垂直线(如直方图)。
这是它在排序之前的样子:
之后:
所以我们看到所有元素都已排序。
为了可视化过程的每一步,我更改了 zedgraph 控件的值并刷新了它。在我的代码中,它看起来像:
private static void CreateGraph3(ZedGraphControl zgc)
{
// get a reference to the GraphPane
GraphPane pane = zgc.GraphPane;
// Set the Titles
pane.Title.Text = "Sorting";
//Clear current values
pane.CurveList.Clear();
// histogram high
double[] values = new double[n];
//fill values
for (int i = 0; i < n; i++)
{
values[i] = A1[i]; //A1 is an array that is currently sort
}
//create histogram
BarItem curve = pane.AddBar("Elements", null, values, Color.Blue);
pane.BarSettings.MinClusterGap = 0.0F; //set columns references
// update axis
zgc.AxisChange();
// update graph
zgc.Invalidate();
}
每次对某些值进行排序时,我都会调用此函数,因此我们看到了整个排序过程的视频。要将当前库包含到您的项目中,您需要:
1)右键单击您的工具箱
2)选择(或添加)项目
3) 浏览,选择 ZedGraph.DLL 并按 OK
4) ZedGraphControl 将被添加到您的工具箱中,您可以像使用其他控件一样使用它。
就这样吧,祝你好运
如果您不介意排除旧的或蹩脚的浏览器,您可以使用 CSS3 动画。只需设置一堆li
s 代表列表中的项目,给它们position:absolute
并操纵每个li
的top
属性以将它们随机排列。
网络似乎还没有成为一个好的、权威的参考指南,但是这里有一些 CSS3 动画的例子。
处理应该非常适合可视化排序算法。