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

常见算法复杂度

发布时间: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

阅读全文

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

热点内容
程序员放弃后会怎样 浏览:182
河北模具编程 浏览:187
adb查找命令 浏览:321
安卓手机视频文件夹怎么打开 浏览:310
平板加密手机后怎么关闭 浏览:567
流媒体服务器应该注意什么 浏览:537
d8命令编译 浏览:964
压缩包解压需要多少空间 浏览:145
如何查找app属性 浏览:388
android人脸识别技术 浏览:322
pc104编程 浏览:335
二维码反编译破解推广 浏览:682
修改服务器的mac地址 浏览:528
好玩的编程软件 浏览:899
编程语言创始人有钱吗 浏览:805
短视频app怎么获客 浏览:16
查看云服务器的应用 浏览:436
javadump工具 浏览:565
程序员16g 浏览:445
程序员没有办法成为top怎么办 浏览:218