导航:首页 > 源码编译 > 常见算法复杂度

常见算法复杂度

发布时间:2025-03-12 20:25:31

1. 算法的时间复杂度和空间复杂度的关系

算法的时间复杂度和空间复杂度是描述算法性能的两个重要指标。它们之间没有直接的数学关系,而是相互独立的。

时间复杂度(TimeComplexity)是衡量算法执行时间随输入规模增长而变化的度量。它通常用大O符号表示,比如O(n)、O(nlogn)等。时间复杂度描述的是算法所需执行的基本操作数目,即算法的运行时间与问题规模之间的关系。以下是常见的时间复杂度:

4、线性对数空间复杂度O(nlogn):算法所需的额外存储空间介于线性空间复杂度和平方空间复杂度之间。

生活当中的空间复杂度应用

1、存储空间管理:在计算机、智能手机和其电子设备中,需要合理管理存储空间。选择适当的文件压缩算法或删除不再需要的文件,以最大程度地减少所需的存储空间。

2、数据备份:对于重要的数据和文件,通常会进行备份以防止丢失。备份涉及到存储额外的副本或增量备份,因此需要考虑备份过程所需的存储空间。

3、图像和视频处理:当处理大量图像或视频时,需要考虑存储原始数据以及处理过程中产生的中间结果所需的存储空间。例如,在图像编辑软件中,可能需要使用额外内存来存储图层和编辑历史记录。

2. 各种算法的时间复杂度

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

一般时间复杂度到了2 n(指数阶)及更大的时间复杂度,这样的算法我们基本上不会用了,太不实用了.比如递归实现的汉诺塔问题算法就是O(2 n).

平方阶(n^2)的算法是勉强能用,而nlogn及更小的时间复杂度算法那就是非常高效的算法了啊.

空间复杂度
冒泡排序,简单选择排序,堆排序,直接插入排序,希尔排序的空间复杂度为O(1),因为需要一个临时变量来交换元素位置,(另外遍历序列时自然少不了用一个变量来做索引)

快速排序空间复杂度为logn(因为递归调用了) ,归并排序空间复杂是O(n),需要一个大小为n的临时数组.

基数排序的空间复杂是O(n),桶排序的空间复杂度不确定

原文: https://blog.csdn.net/weiwenhp/article/details/8622728

阅读全文

与常见算法复杂度相关的资料

热点内容
如何欺骗网游服务器 浏览:934
直接卡密登陆短信测压系统的源码 浏览:960
课经pdf 浏览:299
c动态编程 浏览:34
浣熊PDF 浏览:770
grep命令表达式 浏览:108
程序员半年了找不到工作怎么办 浏览:961
深圳6k程序员 浏览:520
刷脸支付oem需要源码吗 浏览:166
如何在线压缩动态图片 浏览:113
vb字母表加密 浏览:613
红帽磁盘命令 浏览:868
cmd命令大全ip地址 浏览:14
服务器被攻击什么意思 浏览:73
看去哪个app 浏览:163
埃微手环用什么app 浏览:567
培训需要编程基础吗 浏览:338
程序员写论文需要什么条件 浏览:600
三菱电机压缩机待遇 浏览:889
android电源关机 浏览:521