在这篇文章中。我会向大家展示一些排序算法的可视化过程。我还写了一个工具。大家可对照查看某两种排序算法。
引言
首先,我觉得是最重要的是要理解什么是“排序算法”。依据维基百科。排序算法(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)
{
-
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19144|2023-10-27
-
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:9973|2022-11-06
-
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8317|2022-11-06
-
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8686|2022-11-06
-
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8627|2022-11-06
-
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9643|2022-11-06
-
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8611|2022-11-06
-
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:7991|2022-11-06
-
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8642|2022-11-06
-
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7527|2022-11-06
|
|
请发表评论