算法的渐进时间复杂度

T(n) = O(F(n))

T(n):Time 渐进时间复杂度

O:正比例关系

F(n):代码执行次数

只要代码执行的次数越来越多 所耗费的时间也就越来越高

常见的5种:

O(n^2)

O(n logn)

O(n)

O(logn)

O(1):不管重复多少次1次也是这个时间,10次也是这个时间。

时间复杂度排序:由小到大依次:

1.O(1)常数复杂度

2.O(logn)对数复杂度

3.O(n)线性时间复杂度

4.O(n logn)线性对数时间复杂度

5.O(n^2)平方

6.O(n^3)立方

7.O(2^n)指数

8.O(n!)阶乘

以选择排序为例

每次遍历把最小的放到最前面

第二次只要遍历N-1个数,以此类推

需要看N+N-1+N-2+……+N-N+1眼,

比N+N-1+N-2+……+N-N+1次,

交换N次

等差数列公式:有n²项

只要高阶项 且忽略高阶项系数得到选择排序算法时间复杂度O(n^2)

当时间复杂度都是同一级别时,只有实际去跑才知道谁更快,因为每个操作加减乘除花的时间无法用理论去估计

ab快速交换的代码【无需额外变量】

前提a和b的内存地址不能一样!!!! 否则会洗成0 因为自己和自己异或

也就是说数组中 a和b不能是同一个位置

a = a^b;
b = a^b;
a = a^b;

就算 a和b相等 也是能交换成功的

伪代码:

1.O(1)常数复杂度:

①【数组寻址】

②public void m1(){

sout("====hello!");

}

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

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

相关文章

【快捷部署】002_Flink(1.17.2)

Flink一键安装(本地模式) install-flink.sh 脚本内容 #!/bin/bash ####变量 ###执行脚本的当前目录 mydir$(cd "$(dirname "$0")";pwd) echo $mydir #flink安装目录 flink/flink #检查点目录 cp$flink/checkpoints/ #保留点目录 sp…

Java学习笔记(11)

面向对象进阶 Static 静态变量 所有对象一起共享,就用static修饰 不属于对象,属于类的 可以用 类名.静态变量 “”;赋值 但是 对象.静态变量也可以访问到内容 Static内存图 Student这个类的字节码文件加载到方法区,并在内…

计算机网络期末98+冲刺笔记

一、计算机网络基础 1.1计算机网络的概述 计算机网络的定义:利用通信设备和线路,将地理位置不同的具有独立功能的多台计算机机器外部设备连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息…

springboot整合swagger,postman,接口规范

一、postman介绍 1.1概述 工具下载 Postman(发送 http 请求的工具) 官网(下载速度比较慢):Download Postman | Get Started for Free 网盘下载:百度网盘 请输入提取码 1.2Http 请求格式 请求地址请求方法状…

数据结构入门篇 之 【双链表】的实现讲解(附完整实现代码及顺序表与线性表的优缺点对比)

一日读书一日功,一日不读十日空 书中自有颜如玉,书中自有黄金屋 一、双链表 1、双链表的结构 2、双链表的实现 1)、双向链表中节点的结构定义 2)、初始化函数 LTInit 3)、尾插函数 LTPushBack 4)、头…

01-java入门了解--cmd命令、jdk、java的认识

cmd常用命令 java入门需要安装的环境 jdk。(下载好jdk,并配置好环境)idea。(或者其他的编程工具) jdk安装目录介绍 第一步:编写程序(程序员写.java后缀的文件) 第二步:…

学生时期学习资源同步-1 第一学期结业考试题1

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载

使用CrossOver 在Mac 运行Windows 软件|D3DMetal是什么技术,

CrossOver Mac 使用特点 • 免费试用 14 天,可使用 CrossOver Mac 全部功能,• 试用过期会保留之前安装的 Windows 软件• 使 Mac 运行 Windows 程序 使用CrossOver在Mac上运行Windows软件是一个方便且无需安装完整Windows操作系统的解决方案。CrossOve…

数据仓库的基本概念、基本特征、体系结构

个人看书学习心得及日常复习思考记录,个人随笔。 数据仓库的基本概念、基本特征 数据仓库的定义:数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以更好地支持企业或组织的决策分析处理。 数据仓库中数据的4个…

(黑马出品_高级篇_02)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_高级篇_02)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术——分布式事务 今日目标1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题 2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2…

力扣由浅至深 每日一题.05 合并两个有序列表

神明渡我,我将所有苦难都放过 —— 24.3.13 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,…

K8s-CRD实战

CRD CRD的全称是CustomResourceDefinition,是Kubernetes为提高可扩展性, 让开发者去自定义资源(如Deployment,StatefulSet等)的一种方法. Controller controller是由controller-manager进行管理,通过API Server提供的接口实时监…