数据结构与算法分析概要

 
数据结构+算法=程序

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


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

关于时间与空间复杂度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、在函数里面开很大的数组: 解决方案 开成全局数组
 
 
 
 





转载于:https://www.cnblogs.com/Doing-what-I-love/p/5533081.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值