时间复杂度记法(大O记法)相关知识简记

一、概念

大 O 本是一个数学概念。

大 O 记法可用来描述一个函数的增长率的上限”,或者“如果函数 g(x)的增长速度不比函数 f(x)快,那么就称 g 属于 O( f )。

大 O 记法不只是用固定的数字来表示算法的步数,而是基于要处理的数据量来描述算法所需的步数。或者说,大 O 解答的是这样的问题: 当数据增长时,步数如何变化?

二、几种典型描述

1、O(1)

O(1)意味着一种算法无论面对多大的数据量,其步数总是相同的。就像无论数组有多大,读取元素都只要 1 步。

O(1)算法无论面对多大的数组,其步数都不变,也被称为常数时间。

O(1)就是用来表示所有数据增长但步数不变的算法。

2、O(N)

若用大 O记法来描述一种处理一个 N元素的数组需花 N步的算法的效率,很简单,就是 O(N)
O(N)算法所需的步数等于数据量,意思是当数组增加一个元素时, O(N)算法就要增加 1 步。

O(N)也被称为线性时间

3、O(logN)
归于此类的算法,它们的时间复杂度都叫作对数时间。简单来说, O(log N)意味着该算法当数据量翻倍时,步数加 1。
二分查找的大 O 记法就是O(log N)。

4、线性查找最好情况与最坏情况
线性查找的最好情况是 O(1), 最坏情况是 O(N)。
但若无特别说明,大 O 记法一般都是指最坏情况。因此尽管线性查找有 O(1)的最好情况,但大多数资料还是把它归类为 O(N)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55880.shtml

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

相关文章

Substrate 网络层深度解读:libp2p 助力去中心化点对点高效通信

区块链中需要高效的通信工具来确保节点之间的顺畅交互。而 libp2p 正是开发者在点对点通信中不可或缺的框架,提供了强大的模块化功能,使得去中心化网络中的消息传递变得更加灵活且安全。在 Substrate 中,libp2p 的集成帮助开发者轻松实现各种…

从0开始深度学习(12)——多层感知机的逐步实现

依然以Fashion-MNIST图像分类数据集为例,手动实现多层感知机和激活函数的编写,大部分代码均在从0开始深度学习(9)——softmax回归的逐步实现中实现过 1 读取数据 import torch from torchvision import transforms import torchv…

查找与排序-交换排序

交换排序是基于“比较”和“交换”两种操作来实现的排序方法 。 由于选择“比较”的基准元素不同,可将交换排序分为以下两种: 冒泡排序快速排序 一、冒泡排序 1.冒泡排序基本思想 因为其实现与气泡从水中往上冒的过程类似而得名。 每一趟的…

基于SpringBoot+Vue+uniapp微信小程序的垃圾分类系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

MYSQL 表对表快速迁移-直接拷贝表空间文件.ibd进行迁移

数据无价,操作前,建议先备份 前提条件 表结构一致: 源数据库和目标数据库中的表结构必须完全相同。这包括表的列定义、索引、约束等。 表使用 InnoDB 存储引擎: 这种迁移方法仅适用于使用 InnoDB 存储引擎的表,因为 .…

Redux (八) 路由React-router、嵌套路由、路由传参、路由懒加载

文章目录 一、React-Router的基本使用1. 安装及基本使用(路由映射配置)2. 路由跳转Link与NavLink3. Navigate导航4. 处理路径不存在的情况 二、嵌套路由三、手动跳转 (类似编程式路由导航)1. 函数式组件2. 类组件实现手动跳转 四、路由传参1. 路径设置占位符(params)2. search传…

Java面试指南:Java基础介绍

这是《Java面试指南》系列的第1篇,本篇主要是介绍Java的一些基础内容: 1、Java语言的起源 2、Java EE、Java SE、Java ME介绍 3、Java语言的特点 4、Java和C的区别和联系? 5、面向对象和面向过程的比较 6、Java面向对象的三大特性&#xff1a…

leetcode30:串联所有单词的字串

给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["ab","cd","ef"], 那么 "abcdef…

1. 解读DLT698.45-2017通信规约--预连接响应

国家电网有限公司企业标准,面向对象的用电信息数据交换协议DLT698.45-2017 为提高用电信息采集系统的业务适应性、采集效率、安全性和数据溯源性,规范用电信息数据交换协议的通信架构、数据链路层、应用层、接口类与对象标识,制定本标准。 …

Linux系统:(Linux系统概述与安装)

硬件计算机硬件是指计算机系统中所有物理部件的总称。包括计算机主机、显示器、键盘、鼠标、内存、硬盘、处理器、主板等等。这些硬件部件是计算机系统运行的基础 不管是电脑系统(个人电脑、服务器等)、还是移动端操作系统(手机、平板等)。它的功能就是做为用户和硬件之间的桥梁…

前端求职简历-待补充

当然可以,针对大厂的前端岗位,一个吸引人的简历应该突出你的技术能力、项目经验、教育背景以及任何能体现你学习能力和团队协作能力的证明。以下是一个简历大纲示例,你可以根据自己的实际情况进行调整: 个人信息 姓名联系方式&a…

图文深入介绍oracle资源管理(续)

1. 引言: 本文将承接上篇继续深入介绍oracle资源管理。本文重点介绍如何使用oracle资源管理器管理好DB。 2. 资源管理器: 可以使用图形界面 OEM$或命令行调用 DBMS RESOURCE MANAGER 程序包的过程进行数据库资源管理。 调用资源管理器的先决条件&…

瑞数后缀加密怎么处理

前言: 瑞数我们经常补环境通过,但是遇到瑞数后缀不知道怎么处理 就拿瑞数4来讲 解决方法: (1)传明文加密参数 一般情况,我们传明文加密参数也能访问 (2)再补环境基础调用open …

基于stm32的4G模块点灯实验

led模块功能封装 #include "led.h" #include "sys.h"//初始化GPIO函数 void led_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟__HAL_RCC_GPIOB_CLK_ENABLE();//调用GPIO初始化函数gpio_initstruct.Pin GPIO_PIN_8 | GPIO_PIN_9;gpio_inits…

排序算法 —— 直接插入排序

目录 1.直接插入排序的思想 2.直接插入排序的实现 实现分析 实现代码 3.直接插入排序的分析 时间复杂度分析 空间复杂度分析 稳定性 1.直接插入排序的思想 直接插入排序的思想就是把待排序的元素按其关键码值的大小依次插入到一个已经排好序的有序序列中&#xff0c…

YOLOv11改进策略【卷积层】| SAConv 可切换的空洞卷积 二次创新C3k2

一、本文介绍 本文记录的是利用SAConv优化YOLOv11的目标检测网络模型。空洞卷积是一种在不增加参数量和计算量的情况下,通过在卷积核元素之间插入空洞来扩大滤波器视野的技术。并且为了使模型能够适应不同尺度的目标,本文利用SAConv将不同空洞率卷积结果进行结合,来获取更全…

pycharm调试带参数命令行的程序

点击 run configuration 点击加号,选择python name填写程序名字,script填写程序路径,下一行填写传入的参数 点击apply,再点ok,即可debug 参考: pycharm 调试模式下命令行参数的传递_pycharm debug传参 ya…

项目实战:构建 effet.js 人脸识别交互系统的实战之路

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀构建 effet.js 📒1. 什么是effet.js📜2. 为什么需要使用effet.js📝3. effet.js的功能📚4. 使用…

【项目案例】-音乐播放器-Android前端实现-Java后端实现

精品专题: 01.C语言从不挂科到高绩点 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. SpringBoot详细教程 https://blog.csdn.ne…

bash之流程控制

一.if else 和 Java、PHP 等语言不一样,sh 的流程控制不可为空 在 sh/bash 里可不能这么写,如果 else 分支没有语句执行,就不要写这个 else。 if 语句语法格式: if condition thencommand1command2...command…