码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法分析绪论

时间:2016-05-26 23:20:39      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 
数据结构+算法=程序

逻辑结构:集合、线性、树、图
技术分享
物理结构顺序、链式
技术分享

 
算法分析:
  • (渐进)时间复杂度
基本语句的执行次数(基本语句:执行次数与整个算法执行次数成正比的语句,通常是最内层循环的循环体)
  1. 非递归找执行次数最大的基本语句放入大O
  2. 递归:(迭代法)可迭代的展开方程的右边,直到没有可以迭代的项为止,这时通过对右边的和进行估算来估计方程的解http://www.cnblogs.com/python27/archive/2011/12/09/2282486.html
 
最好情况、最坏情况、平均情况(概率)
 
常见时间复杂度:
技术分享
 
  • (渐进)空间复杂度
算法执行时临时开辟的辅助空间
 
技术分享
 

关于时间与空间复杂度A)ACM的一些注意点:
  • 时间复杂度
重要的事实:当代计算机1s内可做10^7左右次计算;配置好的机器可到k*10^7~10^8。
在这个限制下时间复杂度一定的算法存在能处理的规模上限:
技术分享
  • 空间复杂度
当代32位PC上空间最大限制一般是10^7Byte≈10MB,比如你可以开几个大小为10^6的整型数组: int A[10^6]; 开更大的数组,比如A[10^7]一般会遇到Memory Limit Exceed; 即使不超内存根据前面的运算次数限制可知时间复杂度也不会好:
空间复杂度(两种常见空间溢出错误):
1、栈溢出(递归程序):递归程序很常见;大多数情况下你不必担心栈溢出的问题
2、在函数里面开很大的数组:解决方案 开成全局数组
 
 
 
 





数据结构与算法分析绪论

标签:

原文地址:http://www.cnblogs.com/Doing-what-I-love/p/5533081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!