您的位置:首页 > 理论基础 > 数据结构算法

遗世蒹葭~小甲鱼~数据结构和算法_01

2018-03-10 17:54 134 查看
算法初体验
int i ,sum = 0,n = 100;
for(i = 1;i<=n;i++)
{
    sum = sum + i;

}
sum = (1+n)*n/2;
算法:指令的有限序列,技巧和方式
算法特性:输入、输出、有穷性、确定性、可行性,可读性,时间效率高和存储量低
算法效率的度量方法
算法执行时间:事前分析估算方法,统计方法
1、算法采用的策略和方案
2、编译器产生的代码质量
3、问题的输入规模
4、机器执行指令的速度
算法好坏和输入规模-->算法时间
时间复杂度和空间复杂度的求解攻略
输入规模n,时间量度T(n) = O(f(n)),关注增长率,执行次数即为时间。
1、用常数1取代时间中所有的加法常数
2、在修改后的运行次数中,只保留最高阶项
3、如果最高阶项存在且不是1,则去除与这个项相乘的常数
4、得到的最后结果就是大O阶
常数阶、线性阶(O(n)),平方阶(O(n^2))嵌套,三层嵌套,立方阶,对数阶
int i = 1 ,n = 100;
while(i<n)
{
    i = i * 2;

}
x*2 = n  x = log(2)n  O(logn)
函数调用的时间复杂度分析
1<logn<n<nlogn<n^2<n^3<2^n<n!<n^n
空间复杂度:算法需要的存储空间实现,空间需求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: