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

算法及其应用 算法及其应用 这篇文章是个人知识技能的一个图谱记载,主要分为五个专题: 算法及其应用、软工知识储备、设计模式、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

银河麒麟V10离线环境下的Python项目迁移:从Windows依赖到ARM架构适配

本文详细介绍了在银河麒麟V10离线环境下将Python项目从Windows迁移到ARM架构的完整流程。重点讲解了离线安装pip、virtualenv等基础工具的方法,以及如何解决ARM架构兼容性问题,确保项目依赖正确迁移。文章还提供了常见问题解决方案和性能优化建议,帮助开发者顺利完成国产化平台适配工作。

weixin_42639246的博客 423

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

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

九日王朝 7083

使用FileZilla在武汉大学IGS数据分析中心下载GNSS数据

2.依次点击如下图标下载到本地并解压安装(按系统选择要下载的版本)

qq_43381998的博客 6041

YOLOv13+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv13与SAHI(切片辅助超推理)技术,在VisDrone2019数据集上实现高效的无人机航拍小目标检测。通过5个实战步骤,包括环境配置、SAHI参数解析、数据集调优、完整训练推理流程和性能优化技巧,帮助开发者显著提升小目标检测的准确率和效率。

egg99的博客 430

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

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

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

【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)

【cocos2dx面试题干货】--2020年度最新cocos2dx面试干货(引擎篇 ) 大家好,我是Lampard~~ 经过春招一番艰苦奋战之后,我终于是进入了心仪的公司。 今天给大家分享一下我在之前精心准备的一套面试知识。 由于我面试的岗位是cocos2dx的开发岗,今天就先给大家分享一下引擎方面的知识。 本人亲测80%的引擎相关题目都...

Lampard的博客 1万+

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

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

weixin_55617272的博客 670

基于STM32的智能宠物喂食系统设计与实现(代码+PCB )

STM32;DHT11;本系统的软件程序基于Keil MDK-ARM V5集成开发环境进行编写和编译。Keil MDK是ARM公司官方推荐的嵌入式开发工具,支持ARM Cortex-M系列微控制器的程序开发,内置ARM C/C++编译器、调试器和仿真器,具有代码编辑、语法高亮、工程管理和在线调试等功能,是STM32开发领域应用最为广泛的IDE之一。

3254968421的博客 72

论文复现5:UMI Universal Manipulation Interface

UMI 采用手持式夹具,加上精心的界面设计,可实现便携式、低成本和信息丰富的数据收集,以进行具有挑战性的双手和动态操作演示。配备这些功能后,UMI 框架解锁了新的机器人操作功能,只需更改每个任务的训练数据,即可实现零样本可推广的动态、双手、精确和长视野行为。我们通过全面的现实世界实验展示了 UMI 的多功能性和有效性,其中通过 UMI Zeroshot 学习的策略在对不同的人类演示进行训练时可以推广到新的环境和对象。项目主页:https://umi-gripper.github.io/

github_38060285的博客 1976

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

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

Trent1985的专栏 5579

ShowDoc item_id 未授权SQL注入漏洞复现

2024年6月,ShowDoc官方发布新版本修复了一个SQL注入漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可暴破用户token获取系统后台权限,建议所有使用该系统的企业尽快升级修复,以确保系统安全。

0xSec 2357

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

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

data_cola的博客 697

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

《数学之美》与算法

原文链接: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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

xhblair的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

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、付费专栏及课程。

余额充值