算法分析-请问算法时间复杂度分析有多重要,需要什么数学工具?

问题描述

请问算法时间复杂度分析有多重要,需要什么数学工具?
请问算法时间复杂度分析有多重要,需要什么数学工具?有什么好的教材可以推荐,数学的教材或者计算机的教材

解决方案

算法时间复杂度是评估算法优劣的标准。告诉你一个简便地估算算法复杂度,且不要动脑筋的办法。
任意程序,用数据量n 2*n 3*n ... 10*n的数据测试,得到运行时间t1 t2 ... t10
如果时间差不多,那么就是O(1)
如果时间线性增加,那么就是O(n)
如果是抛物线增加,就是O(n^2)
如果是指数增加,就是O(x^n)
如果增加,但是增速变缓,就是O(logn)
有了以上大致的估算,配合大致看下代码,一般也就够了。

解决方案二:

  通过对算法复杂分析可以大致估计出算法的执行时间及效率,推荐一本书<<算法设计和分析>>,大学的一本必修课程教学书籍。
时间: 2024-10-28 19:02:46

算法分析-请问算法时间复杂度分析有多重要,需要什么数学工具?的相关文章

《算法设计与分析》一一2.1 数学运算背后的算法操作

2.1 数学运算背后的算法操作 虽然我们已经熟知很多数学概念与性质,但是从算法设计与分析的角度来看,还需要进一步将这些数学的概念与算法的运作联系起来.下面就从这一角度来讨论几组算法设计与分析中常用的数学概念与性质.2.1.1 取整x和x 我们熟知取整函数的定义:下取整函数x表示不超过x的最大整数:上取整函数x表示不小于x的最小整数.需要取整函数的本质原因在于算法分析中涉及的一些量往往是某种离散对象的个数,它必然是正整数.例如,算法的代价是关键操作的个数,问题的规模经常表示为输入元素的个数.输入数

版主您好,关于您的Opencv3书本的分水岭算法的分析,第337页的标记目标图有个不明确地方请教下

问题描述 版主您好,关于您的Opencv3书本的分水岭算法的分析,第337页的标记目标图有个不明确地方请教下 请问个问题,关于您的书Opencv3第337页的line(g__maskimage为什么不可以改成line(maskimage也就是直接把分水岭种子布在结果图上,而要多一个中间掩膜图步骤然后还要再寻找轮廓和绘制轮廓?直接花在结果图maskimage上,不就省了_从g_maskimage上findcontours()再drawcontours(0到maskimage这个过程了吗? 解决方案

hashmap-Java HashMap的get(),put()算法时间复杂度

问题描述 Java HashMap的get(),put()算法时间复杂度 Java7和Java8的HashMap的put(),get()方法的时间复杂度是啥?还请从平均,最好,最坏的角度分析.谢谢 解决方案 最优情况,hash不碰撞,O(1),典型情况,近似是O(1),因为几乎没有碰撞,最坏情况,O(N),也就是所有的hash都一样,那么退化为线性查找 解决方案二: hashmap的底层是两个数组,put最坏查找N次,get也是如此 . 解决方案三: 理想的是On,容量大小和分布是不是均匀都会有

PHP树的深度编历生成迷宫及A*自动寻路算法实例分析

 这篇文章主要介绍了PHP树的深度编历生成迷宫及A*自动寻路算法,实例分析了php实现A*寻路算法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP树的深度编历生成迷宫及A*自动寻路算法.分享给大家供大家参考.具体分析如下: 有一同事推荐了三思的迷宫算法,看了感觉还不错,就转成php 三思的迷宫算法是采用树的深度遍历原理,这样生成的迷宫相当的细,而且死胡同数量相对较少! 任意两点之间都存在唯一的一条通路. 至于A*寻路算法是最大众化的一全自动寻路算法 废话不多说,贴

后缀-KMP算法 时间复杂度问题

问题描述 KMP算法 时间复杂度问题 void GetNext(char* p,int next[]) { int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while (j < pLen - 1) { //p[k]表示前缀,p[j]表示后缀 if (k == -1 || p[j] == p[k]) { ++k; ++j; next[j] = k; } else { k = next[k]; } } } 为什么这个算法的时间复杂

哪种算法可以分析药物的效果?急求啊

问题描述 哪种算法可以分析药物的效果?急求啊 病历号 住院次数 姓名 性别 性别代码 年龄 支付方式名称 住院天数 入院来源 入院日期 出院日期 出院病区代码 出院病区名称 转归情况 手术编码 手术名称 手术等级 术前住院日 术后住院日 用凝胶数量 总费用 抗生素费用 是否使用过手术预防用抗生素 是否使用过非手术预防用抗生素 是否使用过治疗用抗生素 切口等级 切口愈合等级 红细胞用血 血小板用血 血浆用血 全血用血 其他用血 分析要求:分析凝胶的医用效果 解决方案 单个算法肯定不行到,感觉需要分

背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战

背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.net/detail/frd2009041510/8691475 该软件平台中包含了37种背景建模算法,可以显示输入视频/图像.基于背景建模得到的前景和背景建模得到的背景图像,还可以显示出每种算法的计算复杂度等等.并且,测试的可以是视频.图片序列以及摄像头输入视频.其界面如下图所示: 2.BgsLibr

算法导论-【急求!】降低算法时间复杂度的方法?附图附代码!多谢!!

问题描述 [急求!]降低算法时间复杂度的方法?附图附代码!多谢!! 第一次来CSDN求教大神们!恳请多多指教!!我在用matlab编写一个小算法,这个算法里面可能多次循环的嵌套,导致得到最终结果(输入Reader=800,Tag=1000,r=30,范围为[1,900]的时候),花费了将近800多秒!!!劳驾各方神圣给我指点迷津,降低我这个算法的时间复杂度,有什么好点子好方法么? 更新:原题是RFID网络冗余阅读器去除算法,即要去除掉系统网络中冗余的阅读器,就是图中的红色圈圈,下图是已经去除后的

用大O表示算法时间复杂度的歧义

例题 OK, 长话短说,看一下这个函数的时间复杂度是多少? void foo1(int x) { int bar = 0; for (int i = 0; i < x; i++) { bar++; } } 显然,这个函数输入x,然后函数就循环x次,那就是O(n)咯. 此题的来源是考研408里的一道选择题,并做了简化: void foo2(int n) { int sum = 0; int i = 0; while (sum < n) { sum += i++; } } 此题问时间复杂度是多少,