博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法 - 最好、最坏、平均复杂度
阅读量:6860 次
发布时间:2019-06-26

本文共 796 字,大约阅读时间需要 2 分钟。

注:本文仅为笔记。

最好、最坏时间复杂度

略,比较容易分析。

平均时间复杂度

需考虑概率来计算。

概率论中的加权平均值,也叫作期望值,所以平均时间复杂度的全称应该叫加权平均时间复杂度或者期望时间复杂度

均摊时间复杂度

均摊时间复杂度及对应的摊还分析法。

对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。

// 全局变量,大小为 10 的数组 array,长度 len,下标 i。int array[] = new int[10]; int len = 10;int i = 0;// 往数组中添加一个元素void add(int element) {   if (i >= len) { // 数组空间不够了     // 重新申请一个 2 倍大小的数组空间     int new_array[] = new int[len*2];     // 把原来 array 数组中的数据依次 copy 到 new_array     for (int j = 0; j < len; ++j) {       new_array[j] = array[j];     }     // new_array 复制给 array,array 现在大小就是 2 倍 len 了     array = new_array;     len = 2 * len;   }   // 将 element 放到下标为 i 的位置,下标 i 加一   array[i] = element;   ++i;}

clipboard.png

转载地址:http://wsxyl.baihongyu.com/

你可能感兴趣的文章
[译] 你正在阅读的用户体验文章是不是在向你进行推销?
查看>>
RQPro 公募FOF策略实例——晨星基金筛选和风险平价配置
查看>>
我的前端2019面试指引
查看>>
iOS热更新实现方式
查看>>
创建型模式 工厂模式
查看>>
最新安装CocoaPods教程
查看>>
Swizzling Method
查看>>
React同构踩坑记录
查看>>
教你用Python如何实现微信自动回复功能,机器人自动对话!
查看>>
使用var定义变量和不使用的区别
查看>>
React两个bug踩坑
查看>>
vue引入mxGrpah
查看>>
合并冲突 - 每天三分钟玩转Git(三)
查看>>
你们公司今年会发年终奖吗?Python告诉你大家怎么说
查看>>
Derek解读Bytom源码-Api Server接口服务
查看>>
Java之JDK7的新语法探索
查看>>
微软大秀Windows 10中的MyOffice App免费功能
查看>>
UDP协议
查看>>
学jstl,看这一篇就够了
查看>>
Webpack之tapable深入学习(一)--Sync*Hook
查看>>