遗世蒹葭~小甲鱼~数据结构和算法_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
空间复杂度:算法需要的存储空间实现,空间需求
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
空间复杂度:算法需要的存储空间实现,空间需求
相关文章推荐
- 小甲鱼数据结构01之谈谈算法
- 遗世蒹葭~小甲鱼~数据结构和算法_02~线性表
- 数据结构Java实现01----算法概述
- 数据结构与算法学习笔记01(引言)
- 数据结构和算法简介及算法度量_01
- 01_数据结构和算法绪论
- 01.数据结构概念与算法基础
- 小甲鱼数据结构和算法--马踏棋盘(骑士周游问题)
- [算法与数据结构] - No.12 动态规划之01背包以及01背包一维数组优化
- 小甲鱼数据结构和算法-----二叉树的构建和前序遍历
- 算法与数据结构学习 01 基础与规范
- 数据结构Java实现01----算法概述
- 编程就是算法和数据结构,算法和数据结构是编程的灵魂。01
- 【中国大学mooc—浙江大学数据结构2018春】1.3节求最大子列和问题,算法3的实现(对应作业题目:01-复杂度1 最大子列和问题)
- 数据结构Java实现01----算法概述
- 数据结构和算法-01
- 网易 | 数据结构和算法 | 学习笔记01:绪论
- 数据结构经典算法学习之八皇后01
- scala数据结构和算法-01-用scala实现合并排序
- 数据结构经典算法学习之老鼠走迷宫01