博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《算法基础:打开算法之门》一第1章 什么是算法以及为什么应该关注算法
阅读量:7005 次
发布时间:2019-06-27

本文共 1101 字,大约阅读时间需要 3 分钟。

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

第1章

Algorithms Unlocked

什么是算法以及为什么应该关注算法

让我们从我经常被问到的一个问题开始:“什么是算法?”一个常见的回答是,“完成一个任务所需的一系列步骤。”在日常生活中经常会碰到算法。刷牙的时候会执行一个算法:打开牙膏盖,拿出牙刷,持续执行挤牙膏操作直到足量的牙膏涂在你的牙刷上,盖上牙膏盖,将牙刷放到嘴的1/4处,上下移动牙刷N秒,等等。如果你必须乘通勤车去工作,乘通勤车也是一个算法。诸如此类。〖ZW(B]或者,正如一个我曾经一起打曲棍球的同伴问我的,“什么是nalgorithm?”〖ZW)]但是本书是关于运行在计算机上的算法的,或者更概括地来讲,是关于运行在计算设备上的算法的。正如你日常所运行的算法会影响你每天的生活一样,在计算机上运行的算法也会影响你的生活。你使用过GPS来寻找旅行路线吗?它运行一种称为“最短路径”的算法以寻求路线。你在网上购买商品吗?那么你会使用(应该正在使用)一个运行加密算法的安全网站。当你在网上购买商品时,它们是由一个私营快递公司发货的吗?它使用算法将包裹分配给不同的卡车,然后确定每个司机发件的顺序。算法运行在各种设备上——在你的笔记本上,服务器上,智能手机上,嵌入式系统上(例如你的车中,你的微波炉中,或者气候控制系统中)——无处不在!运行在计算机上的算法和你在日常生活中执行的算法有什么区别呢?当粗略地描述一个算法时,你可能能够容忍它的非精确性,但是计算机不能。例如,如果你开车上班,你的drivetowork算法可能会说“如果交通不畅,可以选择其他路线”。虽然你可能知道“交通不畅”是什么意思,但是计算机不知道。因此,一个计算机算法是完成一个任务所需的一系列步骤,1且这些步骤需要足够精确地描述,以使得计算机能够运行它。如果你已经用Java、C、C++、Python、Fortran、Matlab或者类似的编程语言编写过哪怕一丁点的计算机程序,那么你会对精确度标准的含义有一些概念。如果你从来没有编写过计算机程序,那么当你看了本书中如何描述算法后,可能你会对精确度有一点概念。我们思考下一个问题:“我们想从一个计算机算法中获取什么?”计算机算法解决计算问题。我们希望从一个计算机算法中获取两个结果:给定一个问题输入,它应该总能够产生该问题的正确输出结果,并且在运行该算法时,应该能够有效地利用计算资源。让我们依次看看这两个必要条件。

转载地址:http://pdftl.baihongyu.com/

你可能感兴趣的文章
从U-Boot显示Logo到Android
查看>>
基于 HTML5 Canvas 的简易 2D 3D 编辑器
查看>>
WINPE下如何直接删除联想隐藏分区?
查看>>
通过NTP协议进行时间同步
查看>>
测试的境界
查看>>
flash中NetConnection与NetStream知识整理
查看>>
SQL 问题:已知主键id 和排序条件 这条记录的上一条或下一条记录
查看>>
【转】NSNotificationCenter用法总结
查看>>
jquery 添加节点的几种方法
查看>>
Android WebView 总结
查看>>
创建存储过程和函数
查看>>
[zz]Linux下虚拟化技术深入探讨
查看>>
ASP.NET Cache的一些总结
查看>>
类型名称了解typename的双重意义
查看>>
深入理解计算机系统(1.2)---hello world的程序是如何运行的
查看>>
Json与数组
查看>>
Linux System Reinforcement、Intrusion Detection Based On syslog
查看>>
城市三维地下管线管理系统
查看>>
inno setup介绍及官方网站地址
查看>>
ASP 未结束的字符串常量
查看>>