算法开销及曲线绘制(C语言实现)

算法设计与分析要求:

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,就是需要乘两次参数,这样说明它在坐标轴不能等比放大。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值