嵌入式软件开发培训笔记——C高级 数据结构与算法基础
来源:互联网 发布:apache tools 编辑:程序博客网 时间:2024/05/29 07:23
(1)线性结构:线性表、栈、队列
(2)非线性结构:树、图
2、基本逻辑运算:最基本的逻辑操作,如:查询、插入、删除、修改等
3、存储结构(1)顺序存储(2)链接存储(3)索引存储(4)散列存储二)、算法(根据以下分类进行分析)
1、算法的特性:有穷性(算法执行的步骤或规则是有限的)、确定性(每个计算步骤无二义性)、可行性(每个计算步骤能够在有限的时间内完成)、输入(算法有一个或多个外部输入)、输出(算法有一个或多个输出)
算法与程序即有联系又有区别。
这里要说明的是,算法与程序既有联系又有区别。二者都是为完成某个任务,或解决某个问题而编制的规则(或语句)的有序集合,这是它们的共同点。
区别在于:其一,算法与计算机无关,但程序依赖于具体的计算机语言。其二,算法必须是有穷尽的,但程序可能是无穷尽的。其三,算法可忽略一些语法细节问题,重点放在解决问题的思路上,但程序必须严格遵循相应语言工具的语法。算法转换成程序后才能在计算机上运行。另外,在设计算法时,一定要考虑它的确定性,即算法的每个步骤都是无二义性的(即一条规则不能有两种以上的解释)
2、算法分析:解决一个问题有多种不同的算法,在算法正确的前提下,评价算法好坏的方法。
(1)时间复杂度T(N)
看消耗时间的多少。以执行步骤作为衡量的标准更客观独立。算法的执行步骤多少和处理的数据规模(n)有密切的关系,记为T(N)。评估算法的好坏,核心是比较不同算法在相同规模输入变化下的执行步骤的变化趋势孰快孰慢。如果两个算法的这种变化趋势相同则我们称它们是同数量级的,数学上记为T1(n)=T2(n)=o(f(n))。
(2)空间复杂度D(N)
看消耗存储空间的多少。
(3)看算法的设计是否容易理解,是否容易编程实现,方便调试和维护。
3、定义:算法是一个有穷规则(或语句、指令)的有序集合。- 嵌入式软件开发培训笔记——C高级 数据结构与算法基础
- 嵌入式软件开发培训笔记——C高级 指针
- 嵌入式软件开发培训笔记——C高级 结构体与共用体
- 嵌入式软件开发培训笔记——c编程基础
- 嵌入式软件开发培训笔记——C高级 开发环境
- 嵌入式软件开发培训笔记——C高级 指针和数组
- 嵌入式软件开发培训笔记——C高级 指针和函数
- 嵌入式软件开发培训笔记——C高级 存储类、链接和内存管理
- 嵌入式软件开发培训笔记——C高级 预处理&类型重定义
- 嵌入式软件开发培训笔记——嵌入式linux内核与文件系统移植与分析
- 嵌入式软件开发培训笔记——linux操作系统扫盲
- 嵌入式软件开发培训笔记——shell基本命令
- 嵌入式软件开发培训笔记——linux文件系统
- 嵌入式软件开发培训笔记——shell编程
- 嵌入式软件开发培训笔记——Makefile编写
- 嵌入式软件开发培训笔记——Java第二天(运算符、程序结构、数组与继承)
- 嵌入式软件开发培训笔记——java第六天(IO、网络编程、反射与JNI)
- 嵌入式软件开发培训笔记——boot原理与u-boot 基于Cortex_A8核的S5PC100芯片
- 解题报告 之 POJ3189 Steady Cow Assignment
- 网络学习的网址
- c的多维数组动态建立的问题
- JVM 配置参数学习与研究
- python34之殇——DJango连接Mysql数据库
- 嵌入式软件开发培训笔记——C高级 数据结构与算法基础
- leetcode Sudoku Solver
- HDU2200 Eddy's AC难题 【组合】
- 第六周 项目5 友元类
- Javassist学习总结
- 持续集成搭建心得
- Python GUI 04----Entry
- HDU4870:Rating(DP)
- startService与bindService