1.什么是程序和算法
公式:程序=算法+数据结构
程序的三种基本结构:顺序、选择、循环
1.算法(Algorithm)
在C语言中,算法是通过一系列语句(如循环、条件判断、赋值等)来定义的,这些语句告诉计算机如何执行特定的任务或解决特定的问题。
算法的设计需要考虑到问题的复杂性、数据的处理方式以及所需的计算资源等因素。
C语言提供了丰富的控制结构(如if-else、for、while等)和运算符,使得程序员能够灵活地实现各种算法。
2.数据结构(Data Structure)
C语言本身并不直接提供高级的数据结构(如C++中的STL容器或Java中的集合类),但它允许程序员通过结构体(struct)、联合体(union)、枚举(enum)以及指针等机制来定义自己的数据结构。
这些自定义的数据结构可以模拟出数组、链表、栈、队列、树、图等常见的数据结构。
通过合理地使用这些数据结构,C语言程序可以高效地管理和处理数据。
3.程序=算法+数据结构
在C语言中,一个完整的程序通常是由多个算法和数据结构组成的。
算法定义了解决问题的步骤和逻辑,而数据结构则提供了存储和操作数据的方式。
程序员需要根据问题的需求,选择合适的算法和数据结构,并将它们组合在一起,以实现程序的功能。
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
2.算法的特性
3.算法的表示方法
1. 自然语言
定义:使用人类日常使用的语言(如中文、英文等)来描述算法。
特点:易于理解,但可能不够精确和规范,容易出现歧义。
应用场景:适用于算法描述的初步阶段或向非专业人员解释算法时使用。
2. 流程图
定义:用规定的图形符号来描述算法,包括起止框、处理框、输入输出框、判断框、连接点等。
特点:直观、清晰,能够很好地表示算法的逻辑结构和控制流程。但在描述大型复杂算法时,流程图的流向线较多,可能影响对算法的阅读和理解。
应用场景:适用于算法设计的初级阶段,帮助设计者理清思路,也常用于教学演示。
3. N-S图
定义:又称N-S结构化流程图、盒图,它将全部算法写在一个矩形框内,在该框内可包含它的从属框,用于表示算法的各种处理步骤和三种基本结构(顺序结构、选择结构、循环结构)。
特点:去除了流程方向线,使得算法的描述更加紧凑和易于理解。
应用场景:适用于算法设计的中高级阶段,特别是在需要清晰表达算法结构时。
4. 伪代码
定义:用介于自然语言与计算机语言之间的文字和符号来描述算法。它无固定的、严格的语法规则,书写格式自由,且易于修改。
特点:简洁、通用,能够很好地表达算法的逻辑结构和处理步骤,同时也有利于算法的编程实现。
应用场景:广泛用于算法设计、编程教学和科研论文中。
5. 程序设计语言(如C语言)
定义:直接使用C语言(或其他程序设计语言)编写的程序来实现算法。
特点:精确、规范,能够直接在计算机上执行。但相对于其他表示方法,其编写难度和复杂度较高。
应用场景:算法的最终实现阶段,即将算法转化为可执行的计算机程序。
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.