应用算法的实际情况——简单就是美

算法及其应用 算法及其应用 这篇文章是个人知识技能的一个图谱记载,主要分为五个专题: 算法及其应用、软工知识储备、设计模式、Java学习笔记、Linux和Chromium。 本文重点写算法及其应用,想了解更多,欢迎访问:我的github、 我的优快云博客、 我的知识图谱。 备注:您可以首先通过思维导图了解每部分大致内容,然后根据思维导图中的链接跳转到博客,查看具体笔记内容,最后通过博客尾部链接访... 阅读详情

应用算法的实际情况——简单就是美

应用算法的实际情况——简单就是美

实际上,高级算法未必是最优解,古典算法有时也不错。进一步说,与知名算法相比,简单算法更好的情况也不罕见。

Hatena Bookmark的Firefox扩展的搜索功能的尝试

介绍一个Hatena中的实际例子。HatenaBookmark中有Firefox扩展这个工具,通过它可以将Hatena Bookmark与浏览器集成,十分方便。该扩展可以针对用户以前保存过的书签数据进行增量(incremental)搜索(如图7.1所示)。

 

我们团队讨论了该搜索功能的实现方法,最后结果是,由于增量搜索中搜索动作发生频率很高,而且又是在客户端计算,所以计算量必须少。一些人的数据量能达到一万条以上,所以选择了Suffix Array。

SuffixArray这个数据结构主要用于文本数据等的高速查找。查找本身很快,但必须事先花费很长时间创建数据结构。而且,要让Suffix Array在应用程序中达到实用程度,如何缩短这段时间,就成了要解决的课题。当时我们采用了刚刚发现的IS方法[1]解决。

多次尝试之后,我们用Firefox扩展中唯一可用的JavaScript语言实现了IS方法,但实际结合到应用程序之后并没有达到满意的效果。尽管速度有所提高,但预处理仍然需要花费很长时间,用户添加书签时进行的预处理会给机器造成很大负担。

经过痛苦的选择之后,我们放弃了Suffix Array,而是使用Firefox扩展内部的SQLite功能,用SQL的like进行部分查找(也就是线性查找)。这会让数据量大的人搜索速度降低,但也是没办法的事,只能妥协于这种方法了。

不过,实际完成后发现,使用上完全没有任何问题。曾经担心过的几万条数据量的问题,也由于现代计算机的性能提高,查找上完全没有问题……所以就这样了。

得到的经验

从这个例子中得到的经验就是,评测和估算非常重要,并且偶尔尝试一下简单的实现也很重要。为大规模数据进行优化固然很重要,但从本例中可见,数据较少时优化没有任何意义。而且它也说明,通过人的感觉来推断数据量多少是不可靠的。

灵活应用第三方实现——CPAN等

请不要忘记,大部分常用算法都有已发布的实现,供他人使用。

以前面所说的IS方法为例,当时JavaScript上Suffix Array

并没有好的实现,所以不得不自己编写,但如果是Perl,那么CPAN上有大量各种算法的开源实现函数库,其他语言也一样。

灵活运用这一类实现,可以缩短开发时间。话虽如此,我们不建议在不了解其内容的情况下使用。必须适当了解它做了哪些操作,否则就可能做出错误的选择。

例如,CPAN上有大量压缩算法的实现。压缩也有适合不适合之分,比如对较短文件有效的算法、花费时间很长但压缩比很高的算法、压缩比较低但速度快的算法等,算法的特性各不相同。为了正确选择算法,了解一些算法知识没有坏处。在CPAN上搜索“Algorithm”的结果如图7.2所示。

相反,这些函数库的API有时无法满足我们的规格要求,

 

或者实现的功能过多。这时可以仅实现必要的地方,既能抑制工作量,单位成本获得的效果也更高。重点就是平衡性。

 

本文节选自《大规模WEB服务开发技术》一书

图书详细信息:http://blog.youkuaiyun.com/broadview2006/article/details/6695616



 

算法之美 《算法之美》这本书已经看了接近一个月了,由于其中具有比较强的计算机思维,所以一直没有看完。这个书评也是对算法的深度解析。 C语言: 00.算法 “算法”(algorithm)一词得名于波斯数学家花拉子密。公元9世纪,这位数学家写过一本书,讨论用纸笔解决数学问题的技巧。[书名为“al-Jabr wa’l-Muqabala”,其中的“al-jabr”就是后来“algebra”(代数)这个词的前身... 阅读详情

相关推荐

OpenCV实战之人脸美颜美型算法

更重要的是,课程中通过需求分析——功能定义——原理设计——编程实战的流程来让你掌握比较复杂的图像算法开发流程剖析与实施的技能,这将会在你后续的科研/项目开发过程中发挥更大的作用。人脸美颜美型是一个综合性较高的算法,包括基于机器学习的人脸与关键点检测,与常见传统图像处理方法,如图像滤波,图像融合,形态学操作、图像变形等。鉴于此,笔者设计了一套基于OpenCV实现的一套比较完整的人脸美颜美型算法,实现包括磨皮、美白、大眼、瘦脸、下巴收放、瘦鼻等功能,算法效果如下几张动图所示。

On my way 6702

生活中的算法的实际举例_算法在实际生活中的应用

流密码算法及在日常生活中的应用践经验和已有的知识中学习数学和理解数学。”在教学中,我结合学生的生活经验和已有的知识来设计富有情趣和意义的活动,创设良好的教学情景,使学生切实体验到身边有数学,用数学可以解决生活中的实际问题,从而对数学产生亲切感,增强了学生对数学知识的应用意识,培养学生的自主创新解决问题的能力。1、数学思维能力训练的生活化数学思维能力的训练尽量与实际生活紧密相连,在课堂教学中的教学内...

weixin_42138408的博客 1万+

InsightFace详解:从算法原理到实际应用的全面解析

是由阿里云开发并开源的深度学习人脸识别框架,不仅提供完整的人脸识别解决方案,还包含丰富的人脸分析工具。该框架在多个公开数据集上都取得了优异成绩,是目前最先进的人脸识别系统之一。# 准备训练数据# 配置训练参数config = {'lr': 0.1# 开始训练算法先进:实现了ArcFace、CosFace等前沿算法性能卓越:在多个基准测试中表现优异生态完善:提供完整的人脸分析解决方案易于使用:简洁的API和丰富的文档灵活部署:支持从移动端到服务器端的各种部署场景随着技术的不断发展,

bobo_supper的博客 1964

常见算法在实际项目中的应用

原文出处: StackExchange 译文出处:http://blog.jobbole.com/52669/。 近日Emanuele Viola在Stackexchange上提了这样的一个问题,他希望有人能够列举一些目前软件、硬件中正在使用的算法的实际案例来证明算法的重要性,对于大家可能给到的回答,他还提出了几点要求: 使用这些算法的软件或者硬件应该是被广泛应用的; 例子需要具体,并给...

去寻找答案~ 6422

27、代码之美:从算法实现到实际应用

本文深入探讨了代码之美,从多线程算法实现到实际应用的各个方面。重点分析了多线程算法的执行流程与性能优化、数值稳定性与误差分析、以及CERN数学库中SGBSV例程的优秀设计。通过剖析SGBSV例程的参数设计、错误处理机制和内存管理,总结了美丽代码的核心原则:明确用途、高效设计、良好内存管理、完善错误处理、可扩展性和可维护性。此外,文章还讨论了未来代码开发面临的挑战和趋势,强调了代码性能优化和共享协作的重要性。

rust6ferris的博客 60

美团校招面试算法题库大全

《2024美团校招面试算法题库大全》 关键词:美团校招、面试、算法、题库、2024 摘要: 本文旨在为准备2024年美团校招的候选人提供一套全面且深入的算法题库解析。文章将分为三大部分:第一部分深入讲解算法基础与核心概

AI天才研究院 926

实际项目中的常见算法

【编者按】本文原始内容来源于stackexchange,遵循cc-wiki协议; 近日Emanuele Viola在Stackexchange上提了这样的一个问题,他希望有人能够列举一些目前软件、硬件中正在使用的算法的实际案例来证明算法的重要性,对于大家可能给到的回答,他还提出了几点要求: 使用这些算法的软件或者硬件应该是被广泛应用的;例子需要具体,并给出确切的系统、算法的引用地址;在经典

ly315ly的专栏 1183

FreeModbus源码详解

本篇按照FreeModbus协议栈的工作流程,对源代码进行总结解析;FreeModbus协议栈作为从机,等待主机传送的数据,当从机接收到一帧完整的报文后,对报文进行解析,然后响应主机,发送报文给主机,实现主机和从机之间的通信; 1:demo.c中三个函数,完成协议栈的准备工作; eMBInit()函数:(mb.c) /*函数功能: *1:实现RTU模式和ASCALL模式的协议栈初始化; *2

2万+

论算法的实际应用——泡妞论

我们都知道,算法,即解决问题的方法,我们衡量一个算法的优劣,可以用空间复杂度与时间复杂度来衡量。 换做我们实际生活中,就是物质成本开销与时间成本开销。 不同算法进行泡妞这一业务进行其物质成本开销与时间成本开销自然也不同。所以我们要根据自身情况,选取一个适合于自己的算法。 当前也要适用于你的输入,也就是你的对象(强行面向对象思想)具体类型。 一、博弈算法 博弈的核心思想并不复杂,实

九日王朝 7083

基于STM32与CAN总线的多电机协同控制系统设计与实现

本文详细介绍了基于STM32与CAN总线的多电机协同控制系统设计与实现。该系统采用分布式架构,通过CAN总线实现多节点通信,结合梯形加减速算法和同步控制策略,有效解决了工业自动化中多电机同步性差的问题。文章涵盖硬件设计、通信协议、抗干扰措施及实战调试经验,为工业应用提供高可靠性解决方案。

tech5的博客 970

运算放大器基础1——用作比较器

运算放大器,运放,在电路设计中非常常见。在图2中,当前状态下,开关切换到0V,“正相输入”和“负相输入”都是接地,运放两个输入端电压相同。最后,调节可变电阻,使其两端电压大于3.37V,比如3.43V,作为运放正相输入,由于电压大于反相输入,LED点亮(运放输出为5V)。其次,调节可变电阻,使其两端电压小于3.37V,比如2.09V,作为运放正相输入,由于电压小于反相输入,LED不点亮。好,现在我们将0.1V电源换个方向,这样实际“正相输入”的是-0.1V,比“负相输入”的电压要低,看看输出是什么?

m0_60069998的博客 6123

探究贪心算法:特点与实际应用

作为一名博主,我们常常需要了解并深入探究各种算法,以便能够在解决实际问题时运用自如。在本篇博客中,我们将重点探讨贪心算法,介绍其特点以及如何将其应用到实际问题中去。随着互联网时代的发展,掌握贪心算法的知识将为我们在算法竞赛、工程开发等领域提供强大的技术支持。贪心选择性质:在每一步选择中都采取当前状态下的最优解决方案,即做出局部最优选择。无后效性:当前的选择不会影响以后的选择,即某个阶段的状态一旦确定,就不受之后决策的影响。这意味着贪心算法对于以后的步骤是没有记忆的,只关心当前状态。子问题的最优解。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 2万+

习题加餐4. 冒险者工会

这个问题通过贪心算法解决,展示了贪心算法在解决一些优化问题中的强大能力。关键在于如何识别贪心选择的性质,并通过数学证明确保这种方法能够达到全局最优解。通过对问题的深入理解和逻辑推理,我们可以设计出有效的算法来解决问题,同时也需要注意代码实现中的细节,如排序和双指针的使用,以确保算法的效率和正确性。贪心算法的应用这个问题展示了贪心算法在实际问题中的应用。贪心算法通过在每一步选择当前最优的解决方案,期望最终达到全局最优解。该问题中,每次选择能力最接近但足以完成最难任务的冒险者,就是贪心选择的体现。

tang7mj的博客 1350

在实际应用中,什么情况下会选择贪心算法而不是动态规划?

贪心算法和动态规划是计算机科学中解决优化问题的两种核心算法设计范式,它们在问题分解策略、求解效率和解的质量等方面存在显著差异。

weixin_55617272的博客 670

PLC模糊控制模糊PID(梯形图实现+算法分析)

博途PLC的模糊PID控制详细内容请查看下面的博客文章:Matlab仿真+博途PLC模糊PID控制完整SCL源代码参考(带模糊和普通PID切换功能)_博途怎么实现模糊pid_RXXW_Dor的博客-优快云博客模糊PID的其它相关数学基础,理论知识大家可以参看专栏的其它文章,这里不再赘述,本文就双容水箱的模糊PID问题做详细讲解(包括所有源代码和模糊规则设置参数)。

RXXW_Dor的博客 5884

【信息系统项目管理师】高分论文:论信息系统项目的整合管理(绩效考核系统)

我们将项目管理计划中的子计划包括项目范围、进度、成本、质量管理计划,过程改进计划,人力资源管理计划,风险、采购管理计划,干系人管理计划,项目范围、成本、进度基准作为依据,查看项目的各个方面,通过组织全体团体成员会议来解读由各监控过程提供的信息,之后我与项目管理团队一起制订所需措施,确保项目绩效达到预期要求。在一个项目中,变更是必然的,也是不可避免的,进度拖延,成本失控,客户有新的需求等都会引起项目的变更。在本项目中,我要求有处于工作状态的产品,开发人员才可以对其任意修改,修改完成后,重新入库即可。

数据知道的博客 6887

人像美颜美妆算法入门必备

在优快云多年,也积累了不少感悟,2018年本人与电子工业出版社约书一本《图像视频滤镜与人像美颜美妆算法详解》,该书已正式上市,从传统方法开始,系统讲述调色、滤波、变形等图像算法,引申到人像美颜美妆算法,最后扩展到基于深度学习的AI滤镜及美颜方向。在此做一些简单的推荐。 推荐1:对于人像美颜美妆相关的行业,如各大手机厂商、图像/视频/直播类app、SDK厂家等,都有相当一部分的算法研究人员需求,然而,市场上对应的专业算法书籍基本空白,本书将努力填补这一空白,全书系统介绍...

Trent1985的专栏 5579

增距镜或中继镜选型

增距镜光路图

camerall 5247

如何用算法改变生活 | 算法之美

哈喽大家好,我是可乐。今天给大家推荐一本我之前发朋友圈预告的内容:《算法之美》的读后感。好久没有更新带你阅读一本书这个系列了,上一篇该系列文章还是数学之美:数学究竟是如何被运用到生活...

data_cola的博客 697

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

k8291121的博客 2274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

《数学之美》与算法

原文链接:https://www.taohui.pub/2019/02/23/%e3%80%8a%e6%95%b0%e5%ad%a6%e4%b9%8b%e7%be%8e%e3%80%8b%e4%b8%8e%e7%ae%97%e6%b3%95/ 《数学之美》是一本非常好的算法进阶书,它与吴军老师从事的工作领域密切相关,所以工程性很强。半年时间断断续续读完此书,这里做个笔记,也希望能帮助还未读过本书...

陶辉:聚焦分布式系统的程序员 4029

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

关于克拉美罗下界(CRLB)-及不同DOA估计算法下的方差(性能)对比

本博文的内容相对简单,主要是试图理清楚关于参数估计、无偏估计、CRLB的由来和原理等概念,并以一维线阵为例,给出线阵DOA估计的CRLB、不同DOA估计算法的性能比较。后续有更多的细节和拓展我再不定期补充。

xhblair的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

人像美妆简介与唇彩算法实现

人像美妆简介与唇彩算法实现

weixin_41967328的博客 1186
上一篇: 算法评测
下一篇: IT项目管理那些事儿
Broadview
博客等级 码龄22年 15粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值