算法设计与分析要求:
1、利用计算机程序设计语言,实现三种或以上的排序算法。
2、分析排序算法开销,绘制开销函数曲线。
3、比较排序算法实际运行时间和理论开销之间的差异。
这里我选择的算法是快速排序,折半排序和冒泡排序
(冒泡排序当时脑抽命名maopsort哈哈哈,已经被嘲笑了)
并且要求图线在代码中显示,不得使用excel绘图,所以需要先安装EasyX
直接搜索然后去官网下就行
在写的过程也参考了很多博主的文章,然后自己加了一点来实现自己的需求
然后写一些实现过程中的小细节
总代码如下,比较简单
定义的w是算效率的n的最大值,这里可以根据自己的需求更改,但是建议不要太大,不然电脑算不过来;
注意要让窗口和控制台同时显示时,可以先#define SHOWCONSLOE,为1为0都可以,只要在initgraph()时第三个参数使用就行,当然也可以不define,直接在第三个参数位置使用SHOWCONSLE也可以,这是我参考了别的说法,大家可以试试。
还有在做时间循环时,这里我使用了a[]和b[],主要是想让每次循环时候的数组值回复为原来的乱序状态,不然它排序一次后数组全都是排好的,这样时间就有偏差;
然后数组的获得方式使用了随机数,这是同学给我的方法,不然得自己一个个输入数,这不得疯掉;
窗口输入任意键时,因为无法使用getch(),所以使用了system("pause"),原理一样,只不过getch和conio.h冲突
然后我也不是很确定的是在图形放大时候,y和x到底是等比放大还是要按照函数的变化而变化,这里我还绕不出来,按理来说对于y=x^2时,当x=2时y=4,但是x=20时y=400,就是需要乘两次参数,这样说明它在坐标轴不能等比放大。
写