我有一个学校作业,可视化排序算法(mergesort,bubblesort)。我查看了像Processing,JsAnim,cake和其他几个库这样的库,但不确定它们是否对我的应用程序有用(可视化排序算法)。
我熟悉C#和小javascript。任何适合我需要的图书馆?
非常感谢
答案 0 :(得分:2)
您尚未澄清要使用的语言。因为你的标签我会假设它的java。如果您被允许使用外部资源,您可以使用普林斯顿大学的Robert Sedgewick博士和Kevin Wayne博士撰写的对象。它被称为StdDraw,来自他们的书Algorithms,第4版。源代码的URL在这里:
http://algs4.cs.princeton.edu/stdlib/StdDraw.java.html
如果你不能使用外部资源,我会推荐Java Swing Package。
答案 1 :(得分:1)
如果您不介意排除旧的或糟糕的浏览器,可以使用CSS3动画。只需设置一堆表示列表中项目的li
代码,给他们position:absolute
并操纵每个li
的{{1}}属性,将其随机播放。
网络似乎还没有成为一个好的,权威的参考指南,但CSS3动画的一些例子是here。
答案 2 :(得分:1)
处理应该非常适合可视化排序算法。
答案 3 :(得分:1)
在编写并行排序时我有这样的任务。我使用了C#ZedGraph库:
主要思想是将sort元素的值表示为具有适当高度的垂直线(如直方图)。
这是在sotring之前的样子:
之后:
所以我们看到所有元素都已排序。
为了可视化过程的每一步,我改变了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将被添加到您的工具箱中,您可以像其他控件一样使用它。
所以就是这样,祝你好运