3 Sorting Algorithm Visualization

Kunlin Li

Kunlin Li

Hangzhou Shi, Zhejiang Sheng

0 0
  • 0 Collaborators

Depending on Libgraphics and imGUI, 3 Sorting Algorithm Visualization are given and displayer here. Functions: Speed up/down, Pause/Start, Random/Input, supporting 3 algotithms. ...learn more

Project status: Under Development

PC Skills

Intel Technologies
DPC++

Overview / Usage

程序设计的入门和学习中,排序算法始终是绕不过去的一环。想要深刻地学习掌握排序算法的意义,仅仅通过生硬的语言描述或者编写语段,很难真正掌握集中排序的含义,应该直观地用图像/动画表现出排序的过程,这样就能更加形象地了解到算法的实质。

完成至少_3种排序算法设计_,排序算法数量不少于_10个_;

演示过程能够反应所采用的排序算法的特征,展现动态移动的变化过程,既可自动执行也可以单步执行;

能够从文件中读入被排序的数据(支持int,float,double),文件为文本文件,格式为:<类型> <数据表>;

支持过程的存档和调取,即能够在演示过程中:

1)将必要的数据保存在快照文件中(二进制文件),

2)关闭程序,

3)读入快照文件中保存的数据,继续演示。

Methodology / Approach

界面模块:MyMenu.c, MyButton.c

排序算法模块:BubbleSort.c, Mergesort.c, SelectionSort.c

全局参数:GlobalVars.c

数据处理:MyData.c

排序初始化、绘柱状图、生成随机数、读写:MyFunc.c

主函数:Main.c

1、冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。直到所有的元素都按大小顺序排列好。

2、归并排序:归并排序,是创建在归并操作上的一种有效的排序算法。算法采用分治法,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。在每一层递归上分为三个步骤。

(1)分解:将n个元素分成各含n/2个元素的子序列。

(2)解决:用合并排序法对两个子序列递归的排序。

(3)合并:合并两个已排序的子序列已得到排序结果。

3、选择排序:选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾。以此类推,直到待排序的数据元素的个数为零。

4、快照文件:全球网络存储工业协会SNIA对快照的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。

Comments (0)