如何提高编程效率.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何提高编程效率   摘要:本文主要通过slit算法的功能模块划分,在实现该运算中特别注意内存空间的分配与排序算法的选择,通过分析排序算法的优劣来选择适当的排序算法。文章最后总结该过程,得到如何提高编程效率的心得。   关键词:slit算法;排序算法   中图分类号:TP311.1文献标识码:A文章编号:1007-9599 (2011) 16-0000-01   How to Improve Programming Efficiency   Li Juan   (Dezhou Vocational and Technical College,Dezhou253034,China)   Abstract:This paper mainly through slit function module division algorithm,particularly in the realization of the operators attention to memory allocation and the choice of sorting algorithm,sorting algorithm by analyzing the pros and cons to select the appropriate sorting algorithm.Article concluded that the process has been how to improve the efficiency of programming experience.   Keywords:Slit algorithm;Sorting algorithm   一、引言   数据结构作为程序设计的基础,其对算法效率的影响必然是不可忽视的。本文就是通过实现slit算法的功能模块划分来分析如何合理选择数据结构来优化算法这一问题,对选择数据结构的原则和方法进行了一些探讨。首先对数据逻辑结构的重要性进行了分析,提出了选择逻辑结构的两个基本原则;接着又比较了顺序和链式两种存储结构的优点和缺点,并讨论了选择数据存储结构的方法;最后本文从选择数据结构的的另一角度出发,进一步探讨了如何将多种数据结构进行结合的方法。在讨论方法的同时,本文还结合实际,选用了一些较具有代表性的信息举例进行了分析。该问题的描述:求若干矩形的OR运算,所用算法slit(利用图形的对称性进行分割,从而集成一个大图形,即所求矩形)。   二、实现slit算法的功能模块划分   (1)getOneFData.cpp从输入文件中以点为单位读取数据,存放到指定链表中。(2)getLineList.cpp把以点为单位所读取的数据转换成以线段为单位,存放到指定的“Line”结构链表中。(3)sortLine.cpp把“Line”结构链表中的线段先按照Y轴(升序)再按照X轴(升序)排序。(4)getQ.cpp通过slit算法来切割线段,从而产生所需要的“小”矩形并输出到指定文件中。(5)mainSlit.cpp通过调用以上各个模块,来完成整个功能。   三、分类   (一)计算的复杂度(时间和空间),依据串列(list)的大小(n)。一般而言,好的表现是O(nlog n),最坏的行为是O(n2)。对于一个排序理想的表现是O(n)。   (二)记忆体使用量。稳定度:稳定排序算法会依照相等的关键(换言之就是值)维持纪录的相对次序。也就是一个排序算法是稳定的,就是当有两个有相等关键的记录R和S,且在原本的串列中R出现在S之前,在排序过的串列中R也将会是在S之前。   一般的方法:插入、交换、选择、合并等等。交换排序包含冒泡排序(bubble sort)和快速排序(quicksort)。选择排序包含shaker排序和堆排序(heapsort)。当相等的元素是无法分辨的,比如像是整数,稳定度并不是一个问题。然而,假设以下的数对将要以他们的第一个数字来排序。   (4,1)(3,1)(3,7)(5,6)   在这个状况下,有可能产生两种不同的结果,一个是依照相等的键值维持相对的次序,而另外一个则没有:   (3,1)(3,7)(4,1)(5,6)(维持次序)   (3,7)(3,1)(4,1)(5,6)(次序被改变)   不稳定排序算法可能会在相等的键值中改变纪录的相对次序,但是稳定排序算法从来不会如此。   四、排列算法   在这些排列算法中,n是要被排序的纪录数量以及k是不同键值的数量。包括稳定的和不稳定的,具体如下:   (一)稳定的。   冒泡排序(bubble sort)―O(n2)   鸡尾酒排序(Cocktail sort,双向的冒泡排序)―O(n2)   插

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档