算法 - 最好、最坏、平均复杂度

注:本文仅为笔记。

原文

极客时间 - 数据结构与算法之美 - 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

最好、最坏时间复杂度

略,比较容易分析。

平均时间复杂度

需考虑概率来计算。

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

均摊时间复杂度

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

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

// 全局变量,大小为 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_arrayfor (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://www.mzph.cn/news/275801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

555的传说

郑昀 20101118 昨天听1039电台才知道&#xff0c;北美电影里常出现的555开头号码是行规惯例&#xff0c;因为当年贝尔系统为测试链路中所有交换机的基本功能&#xff0c;全部由5组成的号码&#xff08;555–5555&#xff09;作为特别的测试号码被保留&#xff0c;时至今日只剩下…

没想到你是这样的npm install

大家好&#xff0c;我是若川。今天给大家推荐一篇关于 npm install 的好文。很快能看完。点击下方卡片关注我、加个星标学习源码整体架构系列、年度总结、JS基础系列前言项目中执行npm install发生了什么&#xff0c;众所周知&#xff0c;执行npm install时会在当前项目目录的n…

Django——Model

一、 ORM 在 MVC 或者说 MTV 设计模式中&#xff0c;模型&#xff08;M&#xff09;代表对数据库的操作。那么如何操作数据库呢&#xff1f; 我们可以在 Python 代码中嵌入 SQL 语句。 但是问题又来了&#xff0c;Python 怎么连接数据库呢&#xff1f;可以使用类似 pymysql 这一…

大理石在哪儿_如何创建用户体验写作课程而又不失大理石

大理石在哪儿I’m a UX Writer. It’s a designated human on the software development team who writes words for interfaces. All the words. From the tiniest tooltips to navigation, to buttons, to errors, and so on, ad infinitum. UX writing is less writing and …

Vuex 源码还有一些缺陷?

我看了vuex3和vuex4的源码也输出了文章&#xff0c;看到这篇时&#xff0c;vuex还有缺陷&#xff1f;看了看确实是好文&#xff0c;不愧是大佬写的。文章不算长&#xff0c;推荐给大家看看。点击下方卡片关注我、加个星标学习源码整体架构系列、年度总结、JS基础系列众所周知&a…

三级菜单页面布局_三级菜单的最快导航布局

三级菜单页面布局重点 (Top highlight)When users navigate an interface, there’s a need for speed. The faster it is for them to find what they’re looking for, the more time they’ll save on their task.用户导航界面时&#xff0c;需要提高速度。 他们找到所需内容…

ux体验网站 英国_定义网站图像时的UX注意事项

ux体验网站 英国As the saying goes —俗话说 - “A picture is worth a thousand words.”“一张图片胜过千言万语。” When creating content on the web, it’s often recommended to be using high-quality imageries and making sure that the images serve its purpose …

iconfont 支持全新的彩色字体图标

大家好&#xff0c;我是若川。iconfont我相信大家都用过&#xff0c;而现在支持全新的彩色字体图标了。这是第二次转载&#xff0c;上一次的好文是2020 前端技术发展回顾。点击下方卡片关注我、加个星标学习源码整体架构系列、年度总结、JS基础系列一直以来&#xff0c;Web 中想…

出色的社区网站_《最后的我们》中出色的制作系统

出色的社区网站游戏设计分析 (GAME DESIGN ANALYSIS) The Last of Us became an instant classic the day it was released, back in 2013. At the sunset of the sixth console generation, it felt like Naughty Dog managed to raise the bar in all critical areas of game…

入坑 Electron 开发跨平台桌面应用

‍作为一个跨平台的桌面应用开发框架&#xff0c;Electron 的迷人之处在于&#xff0c;它是建立在 Chromium 和 Node.js 之上的 —— 二位分工明确&#xff0c;一个负责界面&#xff0c;一个负责背后的逻辑&#xff0c;典型的「你负责貌美如花&#xff0c;我负责赚钱养家」。上…

java 接口编程_JAVA面向接口编程

一、什么是面向接口编程要正确地使用Java语言进行面向对象的编程&#xff0c;从而提高程序的复用性&#xff0c;增加程序的可维护性、可扩展性&#xff0c;就必须是面向接口的编程。面向接口的编程就意味着&#xff1a;开发系统时&#xff0c;主体构架使用接口&#xff0c;接口…

小程序 显示细线_精心设计:高密度显示器上的细线

小程序 显示细线Despite the many benefits of Retina displays, there is one clear drawback that must be considered when designing for high-density screens:尽管Retina显示器具有许多优点&#xff0c;但在设计高密度屏幕时仍必须考虑一个明显的缺点&#xff1a; 必须避…

React 入门手册

大家好&#xff0c;我是若川。推荐这篇可收藏的React入门手册。也推荐之前一篇类似的文章《如何使用 React 和 React Hooks 创建一个天气应用》。点击下方卡片关注我、加个星标React 是目前为止最受欢迎的 JavaScript 框架之一&#xff0c;而且我相信它也是目前最好用的开发工具…

根号 巴比伦_建立巴比伦卫生设计系统

根号 巴比伦重点 (Top highlight)In this post I’ll explain the first phase of creating our Babylon DNA, the design system for Babylon Health, and how we moved the Babylon design team from Sketch to Figma.在这篇文章中&#xff0c;我将解释创建巴比伦DNA的第一阶…

《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 2. Changes Needed

2019独角兽企业重金招聘Python工程师标准>>> Cultural Change 文化变革 A great deal of the changes necessary for enterprise IT shops to adopt cloud-native architectures will not be technical at all. They will be cultural and organizational changes t…

前端,你要知道的SEO知识

大家好&#xff0c;我是若川。三天假期总是那么短暂&#xff0c;明天就要上班了。今天推荐一篇相对简单的文章。点击下方卡片关注我、加个星标之前有同学在前端技术分享时提到了SEO&#xff0c;另一同学问我SEO是什么&#xff0c;我当时非常诧异&#xff0c;作为前端应该对SEO很…

高安全性同态加密算法_坏的同态性教程

高安全性同态加密算法I was going to write at length about the issues I see in neumorphism and why this trend should be avoided. I know any attempt to guide my most impressionable colleagues away from it, will end up being failing because this fad is going t…

前端容易忽略的 debugger 调试技巧

大家好&#xff0c;我是若川。我们日常开发碰到的很多问题&#xff0c;通过 debugger 都能快速定位问题&#xff0c;所以推荐这篇大家容易忽略的调试技巧。会定位问题&#xff0c;可以节省很多时间。也就是我经常说的工欲善其事&#xff0c;必先利其器。也是为什么我经常强调调…

Spring高级程序设计这本书怎么样

关于Spring高级程序设计 评论读后感&#xff1a;这本书需要有一定的spring基础的人看读后感&#xff1a;对于了解Spring 很有用&#xff0c;并且是一本不错的参考书读后感&#xff1a;这本书早就想买了&#xff0c;就是太贵了&#xff5e;&#xff5e;&#xff5e; 啦啦啦&…

玉伯:开源有带给我什么

在2021年527蚂蚁技术日上&#xff0c;蚂蚁内源社区举办了内源专场&#xff0c;在专场上玉伯给大家分享了《开源有带给我什么》&#xff0c;以下为演讲的图文整理。我的开源之路我从2009年到2018年&#xff0c;接近十年时间&#xff0c;一直在做开源的一些事情&#xff0c;在这个…