什么是算法?
程序 = 数据结构 + 算法
数据结构
我们天天不是写程序就是在写程序的路上,那么你知道程序是由什么组成的吗?
答案就是由数据结构和算法组成的。然而我们在之前的几篇文章中已经讲解了数据结构就是:将现实世界的问题信息化,并且将信息存进计算机。同时还要实现对数据结构的基本操作。
就比如我们在前几篇文章中使用到的例子就是海底捞的排队系统:
- 该系统的数据结构是使用队列。
- 并且实现一些跟队列相关的基本操作
- 队头元素出队
- 新元素入队
- 输出队列长度
- 交换第 i 号和第 j 号的位置
- …
在这里我们使用这个队列去表示海底捞的排队系统,其实就是把现实世界的问题信息化了。
算法
而算法就是如何处理这些信息,以解决实际问题。
比如现在有一个现实的问题:带小孩的顾客优先就餐,接下来我们就来设计一个算法:
- 执行基本操作2.(新顾客取号)
- 一次对比前面桌的信息,如果前面卓没有带小孩,就执行操作4.(调换带小孩的这桌新顾客至另一桌带小孩的后面一桌)
算法的五个特性
有穷性
一个算法必须总在执行有穷步之后结束,且每一步都可在又穷时间内完成。
注意:
算法必须