数据结构与算法分析(算法分析部分)
来源:互联网 发布:java实现三级联动 编辑:程序博客网 时间:2024/05/14 20:20
1.算法:对于一个问题,某种算法被确定是正确的,还要考虑这个算法的可行性,比如时间和内存。
2.数学基础:
时间复杂度:
如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数。T(n)称为这一算法的“时间复杂度”,当输入量n逐渐加大时,时间复杂度的极限情形称为算法的“渐近时间复杂度”。
我们常用大O表示法表示时间复杂度:
原则:忽略低阶项和常数, 如:T(N)=O(2N^2)或者T(N)=O(N^2+N)简化成
T(N)=O(N^2)即可
最坏运行时间:即按照算法的最长时间来计算
for循环:n
嵌套for循环:n^2
当问题规模即要处理的数据增长时, 基本操作要重复执行的次数必定也会增长, 那么我们关心地是这个执行次数以什么样的数量级增长。所谓数量级可以理解为增长率。这个所谓的数量级就称为算法的渐近时间复杂度, 简称为时间复杂度。如何分析这个数量级呢? 由于基本操作的执行次数是问题规模n 的一个函数T(n), 所以问题就是我们要确定这个函数T(n)是什么, 然后分析它的数量级(增长率), 拥有相同数量级的函数 f(n) 的集合表示为 O(f(n)), O是数量级的标记。如果T(n)的数量级和f(n)同
3.运行时间中的对数:
分析算法最混乱的地方就在对书上面。对数经常出现的规律:如果一个算法用常数时间将问题的大小削减为其一部分,那么该算法就是Olog(N),若是削减到常数,那么该算法就是O(N)的。例如折半查找算法,在一个有序的数组中,查找A[i}=x,若是x大于中间的元素,那么就查找数组的右半部分买否则,查找数组的左半部分。
- 数据结构与算法分析(算法分析部分)
- 数据结构与算法分析之--->部分排序算法的实现
- 【数据结构】数据结构与算法分析第一章部分题目
- 数据结构算法与分析
- 数据结构与算法分析
- 数据结构与算法分析
- 数据结构与算法分析
- 数据结构与算法分析
- 数据结构与算法分析
- 数据结构与算法分析
- 数据结构与算法分析
- 《数据结构与算法分析》
- 排序算法(数据结构与算法分析)
- 数据结构与算法分析c++:算法分析
- 数据结构与算法分析c++:算法分析
- 数据结构与算法分析(chapter2 算法分析)
- 数据结构与算法分析(JAVA版)
- 数据结构与算法分析(chapter1)
- LeetCode--Unique Binary Search Trees (不同二叉搜索树的个数)Python
- 集合框架
- ImagerLoader 的使用和配置 以及存储
- echarts
- git基础语句-vim的使用
- 数据结构与算法分析(算法分析部分)
- 创建登陆界面
- Spring事务管理—aop:pointcut expression解析
- 信号
- Untracked files不想add
- 第十二周项目三:验证算法(3)
- C++写时拷贝技术与引用计数
- Java 笔记 之 JDK的安装
- Demo For Python&Sklearn(一)