一个很好的动画库,用于可视化排序算法

时间:2012-05-01 20:16:30

标签: c# java javascript jquery ajax

我有一个学校作业,可视化排序算法(mergesort,bubblesort)。我查看了像Processing,JsAnim,cake和其他几个库这样的库,但不确定它们是否对我的应用程序有用(可视化排序算法)。

我熟悉C#和小javascript。任何适合我需要的图书馆?

非常感谢

4 个答案:

答案 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)

处理应该非常适合可视化排序算法。

示例:http://www.openprocessing.org/sketch/29208

答案 3 :(得分:1)

在编写并行排序时我有这样的任务。我使用了C#ZedGraph库:

ZedGraph tutorial

主要思想是将sort元素的值表示为具有适当高度的垂直线(如直方图)。

这是在sotring之前的样子:

enter image description here

之后:

enter image description here

所以我们看到所有元素都已排序。

为了可视化过程的每一步,我改变了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将被添加到您的工具箱中,您可以像其他控件一样使用它。

所以就是这样,祝你好运