算法分析----第一节

news/2024/7/7 15:41:06

算法分析

算法表示:

O(n)不是算法,它是一个函数,是一个表征算法时间复杂度的一个函数。

计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

image.png

扩展资料:

算法复杂度分为时间复杂度和空间复杂度。

其作用: 时间复杂度是指执行算法所需要的计算工作量;

而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。

计算方法:

1、一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得T(n)/f(n)的极限值(当n趋近于无穷大时)为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。

2、在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级,找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数c,则时间复杂度T(n) = O(f(n))。

则该算法的时间复杂度:T(n) = O(n^3) 注:n^3即是n的3次方。

3、在pascal中比较容易理解,容易计算的方法是:看看有几重for循环,只有一重则时间复杂度为O(n),二重则为O(n^2),依此类推,如果有二分则为O(logn),二分例如快速幂、二分查找,如果一个for循环套一个二分,那么时间复杂度则为O(nlogn)。

转载于:https://www.cnblogs.com/charlypage/p/10708035.html


http://www.niftyadmin.cn/n/1413550.html

相关文章

MySQL参数优化及基础操作

系统环境:Centos-6.7安装软件:mariadb10.0.21安装机器:192.168.4.251软件安装位置:/usr/local/mysql/数据存放位置:/data/mydata/首先优化数据库参数:#vi /etc/my.cnf [client]port 3306socket /data/myd…

Delphi自定义部件开发(3)

3. 创建新的消息处理方法 因为Delphi只为大多数普通Windows消息提供了处理方法,所以当你定义自己的消息时,就要创建新的消息处理方法。  用户自定义消息的过程包括两个方面:   ● 定义自己的消息 ● 声明新的消息处理方法   ⑴ 定义…

团队作业第五次—项目系统设计与数据库设计

作业要求 这个作业属于哪个课程软件工程1916-W(福州大学)这个作业要求在哪里团队作业第五次—项目系统设计与数据库设计团队名称基于云的胜利冲锋队项目名称云评:高校学生成绩综合评估及可视化分析平台这个作业的目标系统设计和数据库设计博客随笔PDF博客随笔下载系…

通过lrzsz轻松实现Windows/Linux之间文件的上传/下载

在使用lrzsz之前一直都是用FTP来上传下载文件到Linux,在SecureCRT上安装了lrzsz之后个人觉得操作起来比使用FTP更为简单易用。并且可以方便的在本地PC机和远程服务器之间传输文件。1、安装lrzsz安装前先检查有没有安装lrzsz[rootlocalhost ~]#rpm –ql lrzsz没安装…

Delphi自定义部件开发(4)

创建图形部件 图形控制是一类简单的部件。因为纯图形部件从不需要得到键盘焦点,所以它没有也不要窗口句柄。包含图形控制的应用程序用户仍然可以用鼠标操作控制,但没有键盘界面。在本例中提供的图形部件是TShape。Shape部件位于Component Palette的Addi…

CentOS7服务管理(重启,停止,自动启动命令)

我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体。 systemctl is-enabled iptables.service systemctl is-enabled servicename.service #查询服务是否开机启动 systemctl enable *.…

[LintCode] Insertion Sort List

Problem Sort a linked list using insertion sort. Example Given 1->3->2->0->null, return 0->1->2->3->null. Note 插入排序【维基百科】 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始…

Balanced Lineup(线段树求最大值,最小值)

For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a contiguous range of cows from …