• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【Unity3D自学记录】可视化对照十多种排序算法(C#版)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在这篇文章中。我会向大家展示一些排序算法的可视化过程。我还写了一个工具。大家可对照查看某两种排序算法。

引言

首先,我觉得是最重要的是要理解什么是“排序算法”。依据维基百科。排序算法(Sorting algorithm)是一种能将一串数据按照特定排序方式进行排列的一种算法。

最经常使用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法(比如搜索算法与合并算法)中是重要的,如此这些算法才干得到正确解答。排序算法也用在处理文字数据以及产生人类可读的输出结果。

接下来。我会说明一些算法。全部算法皆由C#代码实现,大部分的算法思想都能够在维基百科上找到。 所呈现的算法有:

  • 双向冒泡排序
  • 冒泡排序
  • 桶排序
  • 梳排序
  • 循环排序
  • 地精排序
  • 堆排序
  • 插入排序
  • 归并排序
  • 奇偶排序
  • 鸽笼排序
  • 高速排序
  • 使用冒泡的快排
  • 选择排序
  • 希尔排序

我已经决定要创建GUI可视化的排序算法。该项目还同意用户保存为GIF图像及设置动画输出排序速度。

使用代码

该解决方式由两个项目组成。第一个项目称为组件提供的创建GIF动绘图像类。该项目是基于NGIF项目的。关于这个项目的很多其它信息能够在这里找到

第二个项目能够称为排序比較,它是解决方式的主要组成部分。当中。通过一个名为frmMain的结构能够选择排序算法。设置你想要排序,排序的速度,排序数量。并选择是否要创建动态图片。

在窗口上放置两个面板称为pnlSort1和pnlSort2,当中分拣可视化的呈现方式。

每一个算法都都通过自己的排序方式进行命名。并接受一个IList參数。并返回一个IList对象。

DrawSamples方法能够在面板上进行画图。产生的随机样本之后就会调用它。通过点击随机button生成的样本会保存在数组中。

1
2
3
4
5
6
7
8
9
10
11
12
13
private void DrawSamples()
{
    g.Clear(Color.White);
 
    for (int i = 0; i < array.Count; i++)
    {
        int x = (int)(((double)pnlSamples.Width / array.Count) * i);
 
        Pen pen = new Pen(Color.Black);
        g.DrawLine(pen, new Point(x, pnlSamples.Height),
          new Point(x, (int)(pnlSamples.Height - (int)array[i])));
    }
}

该方法随机产生数据放于数组中。

1
2
3
4
5
6
7
8
9
10
11
12
13
public void Randomize(IList list)
{

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#压缩算法总结发布时间:2022-07-10
下一篇:
C#Unity依赖注入发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap