《算法基础:打开算法之门》一1.4针对计算机专业人士的计算机算法

简介:

本节书摘来自华章出版社《算法基础:打开算法之门》一书中的第1章,第1.4节,作者 [美]托马斯 H 科尔曼(Thomas H Cormen),更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4针对计算机专业人士的计算机算法

如果你是一个计算机专业人士,那么你最好关注计算机算法!不仅仅是因为算法是计算机的核心,而且算法就像计算机的其他技术一样。你可以为了买一个最新、最好的处理器而花大价钱,但是你更需要在其上运行好的算法以使你的钱花得值。

这里有一个例子来说明算法确实是一门技术。在第3章中,我们将会看到几个将n个元素按升序排列的算法。其中一些算法的运行时间增长量级是n2,而另一些算法的运行时间增长量级仅仅为nlgn。什么是lgn呢?它是n的以2为底的对数,或记为log2n。计算机科学家如此频繁地使用以2为底的对数,以至于就像数学家和科学家使用缩写lnn来表示自然对数logen一样,计算机科学家也将以2为底的对数表示成缩写形式。因为函数lgn是指数函数的逆,所以它随着n的变化会相当地缓慢增长。如果n=2x,那么x=lgn。例如,210=1024,因此lg1024仅仅是10;同样地,220=1048576,因此lg1048576仅仅等于20;且230=1073741824意味着lg1073741824仅仅等于30。因此nlgn相对于n2,它是将因子n换成了lgn,这是一种非常方便的表示方式。

让我们将这个例子具体化。假设我们选择在一个较快的计算机(计算机A)上执行一个运行时间为n2的排序算法,而在一个运行速度较慢的计算机上(计算机B)上执行一个运行时间为nlgn的排序算法,并让它们均对一个包含着1千万个数字的数组进行排序。(尽管1千万个数看起来很多,如果这些数字是8字节整数,那么输入大约会占用80兆字节,对于一个低廉的笔记本电脑而言,这能够适配主存。)假设计算机A每秒执行100亿条指令(比本书写至此时任何计算机的执行速度更快),而计算机B每秒仅仅能执行1千万条指令,因此计算机A在计算机性能上比计算机B快1000倍。为了使得这个差异更明显,假定世界上具有最精湛技术的程序员为计算机A使用机器语言进行编码,并且结果的代码会需要2n2条指令来实现对n个数字的排序,而对计算机B进行编码的仅仅是一个普通程序员,他会使用一个带有低效编译器的高级语言,使得最终编码需要50nlgn条指令。为了对1千万个数进行排序,计算机A需要花费的时间为:image

这超过了55个小时,而计算机B会花费:image

该时间不到20分钟。通过使用一个运行时间增长较慢的算法,即使是使用一个较次的编译器,计算机B的运行速度也会比计算机A的运行速度快17倍!当我们对1亿个数字进行排序时,运行时间为nlgn的算法的优点会更加显著:运行在计算机A上的时间复杂度为n2的排序算法所花费的时间会超过23天,而运行在计算机B上的时间复杂度为nlgn的这个算法所耗费的时间会在4个小时以下。一般而言,当问题规模增加时,时间复杂度为nlgn的算法的相对优势也会更加明显。

即使我们看到了计算机硬件方面的不断改进和发展,但是整个系统的性能不仅仅依靠选择运行较快的硬件或者高效的操作系统,选择高效的算法对提升系统的性能也同样重要。就像在其他计算机技术上所做出的重要改进一样,在计算机算法上也在进行着相应的改进。

相关文章
|
22天前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
53 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
21天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
46 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
17天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
31 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
58 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
17天前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
37 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
22天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
25 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索计算机人工智能算法
在信息科技飞速发展的今天,人工智能(AI)炙手可热。计算机AI算法作为核心,使系统能模拟乃至超越人智。本文探索AI算法原理,涵盖机器学习(监督与无监督学习)、深度学习及自然语言处理等关键技术,展示其如何通过数据分析、模式识别等实现预测、分类及理解人类语言等复杂任务,引领科技创新潮流。
58 0
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
2天前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。