技术编程Python算法详解:为什么说算法是程序的灵魂?
算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发 。 软件开发工作不是按部就班,而是选择一种最合理的算法去实现项目功能 。 算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需要遭循这个思路去实现即可 。 本章将详细讲解计算机算法的基础知识,为读者步入后面的学习打下基础 。
1.1 算法的基础
自然界中的很多事物并不是独立存在的,而是和许多其他事物有着千丝万缕的联系 。 就拿算法和编程来说,两者之间就有着必然的联系 。 在编程界有一个不成文的原则,要想学好编程,就必须学好算法 。 要想获悉这一说法的原因,先看下面对两者的定义 。
算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制 。 也就是说,能够对符合一定规范的输入,在有限时间内获得所要求的输出 。 如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题 。 不同的算法可能用不同的时间、空间或效率来完成同样的任务 。
编程是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程 。 为了使计算机能够理解人的意图,人类就必须将需要解决的问题的思路、方法和手段通过计算机能够理解的形式"告诉"计算机,使计算机能够根据人的指令一步一步去工作,完成某种特定的任务 。 编程的目的是实现人和计算机之间的交流,整个交流过程就是编程 。
【技术编程Python算法详解:为什么说算法是程序的灵魂?】在上述对编程的定义中,核心内容是思路、方法和手段等,这都需要用算法来实现 。 由此可见,编程的核心是算法,只要算法确定了,后面的编程工作只是实现算法的一个形式而已 。
1.1.1算法的特征
在1950年,算法(Algorithm )一词经常同欧几里得算法联系在一起 。 这个算法就是在欧几里得的《几何原本》中所阐述的求两个数的最大公约数的过程,即辗转相除法 。 从此以后,算法这一叫法一直沿用至今 。
随着时间的推移,算法这门学科得到了长足的发展,算法应该具有如下5个重要的特征 。
有穷性:保证执行有限步骤之后结束 。
确切性:每一步骤都有确切的定义 。
输入:每个算法有零个或多个输入,以刻画运算对象的初始情况 。 所谓零个输入,是指算法本身舍弃了初始条件 。
输出:每个算法有一个或多个输出,显示对输入数据加工后的结果,没有输出的算法是室无意义的 。
可行性:原则上算法能够精确地运行,进行有限次运算后即可完成一种运算 。
1.1.2 何为算法
为了理解什么是算法,先看一道有趣的智力题 。 "烧水泡茶"有如下5道工序: 1、烧开水, 2、洗茶壶, 3、洗茶杯, 4、拿茶叶,5、泡茶 。 烧开水、洗茶壶、洗茶杯、拿茶叶是泡茶的前提 。 其中,烧开水需要15min ,洗茶壶需要2min ,洗茶杯需要1min ,拿茶叶需要1min ,泡茶需要1min.下面是"烧水泡茶"的两种方法 。
方法1的步骤如下 。
第1步:烧水 。
第2步:水烧开后,洗刷茶具,拿茶叶 。
第3步:沏茶 。
方法2的步骤如下 。
第1步:烧水 。
第2步:烧水过程中,洗刷茶具,拿茶叶 。
第3步:水烧开后沏茶 。
习题:比较这两种方法有何不同,并分析哪种方法更优 。
上述两种方法都能最终实现“烧水泡茶的功能,每种方法的3个步骤就是一种算法 。 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则 。 通俗点说,就是计算机解题的过程 。 在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法 。 前者是推理实现的算法,后者是操作实现的算法 。
1.2计算机中的算法
众所周知,做任何事情都需要一定的步骤 。 计算机虽然功能强大,能够帮助人们解决很多问题,但是计算机在解决问题时,也需要遵循一定的步骤 。 在编写程序实现某个项目功能时,也需要遭循一定的算法 。 在本节的内容中,将一起探寻算法在计算机中的地位,探索算法在计算机中的基本应用知识 。
- 更名为广东职业技术师范学院天河学院
- 36氪利用无人驾驶技术切入水域智慧环卫与维护,“欧卡智能”获千万元级融资
- 上游新闻|精度达到2-3米,北斗系统发言人:中国北斗攻克160余项关键技术
- IT之家|三星Galaxy Note 20将搭载UWP技术 传文件比NFC更快
- 央视新闻客户端|北斗系统工程新技术应用超过70%
- 问董秘|提供设备和技术的正是克劳...,投资者提问:中石油系统已经大量加入做聚丙烯熔喷料
- 我国|我国封锁“世界唯一专利”,日本出3000亿要买,美国要求技术共享
- 检测|辽宁派16支核酸检测医疗队驰援大连,研发10合1混采技术
- 北斗办:北斗与5G融合将推动无人驾驶等技术发展
- 北斗系统工程新技术应用超过70%