数据结构基础:算法的基础知识笔记
1、算法的概念
算法是问题求解过程中的精确描述,它为解决某一特定类型的问题规定了一个运算过程。
2、算法的特点
2.1 有穷性
一个算法必须在有穷的步骤结束后结束,并且每一步都在有穷时间内完成。
2.2 确定性
算法的执行过程中每一步都要有确定的定义,不能存在歧义。
2.3 可行性
算法应该是可以实现的,就是在有穷的步骤实现想要的结果。
2.4 输入
算法可以有零个或者多个输入,它作为初始数据为实现算法的结果提供初始量或被加工的数据对象。
2.5 输出
一个算法有一个或者多个输出,它们是与输入有特定关系的量。
3、优秀算法的特点
正确性、可读性、健壮性、效率高占用资源少。
4、算法描述的方式
4.1 流程图(Flow Chat)
流程图是最古老、流行最广泛的一种算法的图形表示法。每个算法都可由若干张流程图表示。流程图给出了算法中所进行的操作以及执行这些操作的逻辑顺序。
流程图的基本符号
求最大公约数
4.2 N/S 盒图
盒图是支持结构化程序设计产生的一种描述工具。分为顺序结构、选择结构、多选择结构 、while-do 循环结构、repeat-until循环结构,调用结构。
4.3 伪代码
用伪代码描述算法的特点是借助程序语言的语法结构 和自然语言描述,使算法具有良好的结构而又不拘泥于程序语言的限制。这样的算法易读易写,容易转换为程序。
4.4 决策表
决策表是一种图形表格,它可以将比较复杂的决策问题,简洁明了的方式呈现出来。如图:
5 、算法效率
算法效率是决定一个算法优劣的非常重要的一点,任何算法在计算机上执行都会消耗时间和存储空间资源。消耗时间和存储空间资源分别用时间复杂度和空间复杂度来体现。
语句频度:是指算法语句被重复执行的次数。
算法的执行时间:算法中各个基本语句的语句频度之和。
例如:语句频度为 1、n、n^2 时间复杂度分别为O(1) 常量阶、O(n) 线性阶、O(n^2) 平方阶。若三个是一个整体,算法的时间复杂度为 O(n^2)。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识
数据结构基础:算法的基础知识笔记相关推荐
- 大话数据结构与算法:基础篇
1.数据结构的重要性 数据结构是计算机软件相关专业的基础课程,几乎可以说,要想从事编程工作,无论是否是科班出身(比如我,标准的非科班人员,我是学医的,哈哈)都不可以绕过数据结构与算法这部分知识. 数据 ...
- 数据结构与算法之基础概述
目录 数据结构和算法的重要性 数据结构概述 逻辑结构 存储结构 算法概述 如何理解"大O记法" 时间复杂度 空间复杂度 数据结构和算法的重要性 算法是程序的灵魂,优秀的程序可以在海 ...
- 数据结构与算法学习——基础知识(一)
数据结构与算法 线性结构和非线性结构 基本概念 线性结构 非线性结构 稀疏数组 基本概念 稀疏数组的处理方法 举例说明 应用实例 代码实例 队列 基本介绍 示意图 数组模拟队列 思路分析 代码实现 数 ...
- 【数据结构与算法】基础数据结构与算法大全
一.用过的编程语言 Java Python JavaScript 二.数据结构的知识梳理 数据结构入门基础梳理 数据结构一些基本常识的笔记 算法复杂度的几点笔记 对顺序表动态分配方式的思考 循环队列的 ...
- 项目测试基础:白盒测试相关知识笔记
1.白盒测试概念 白盒测试又称为结构测试,主要是根据程序的内部结构和逻辑来设计测试用例,然后对程序的路径和过程进行测试,检查是否满足设计的需要. 2.白盒测试常用的技术介绍 白盒测试常用的技术有逻辑覆 ...
- 项目测试基础:黑盒测试相关知识笔记
1.软件测试方法分类 静态测试:主要指测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测. 人工检测:靠人工审查程序或评审如啊你就按,包括代码检查.静态结构分析.代码质量 ...
- 操作系统基础:计算机作业管理知识笔记
1.计算机作业的概念 计算机中的作业是为了完成某个用户的计算任务所做工作的总和. 作业管理程序:操作系统中用来控制作业进入.执行.撤销的一组程序. 2.作业与作业的控制方式 脱机控制方式:用户需要把自 ...
- 计算机系统基础:文件管理相关知识笔记
一.文件的相关概念 1.为什么要有文件管理? 文件系统主要是为了方面用户访问外部存储器信息,而不去关注内部存储的机制,只需要根据文件名就可以高效的存取信息. 2.文件的定义 文件是这一组具有符号名.在 ...
- 计算机系统基础:磁盘调度知识笔记
1.磁盘调度介绍 磁盘可以被多个进程共享的设备,如果有多个进程请求访问磁盘时,为了保证信息的安全,系统的每一时刻只允许一个进程进入磁盘进行I/O操作,别的进程需要等待. 磁盘需要采用一种适当的算法,使 ...
- 计算机系统基础:虚拟存储管理知识笔记
1.虚拟存储管理概念 一个计算机任务只需要部分装入主存便可以启动运行,其余部分留在磁盘上,在需要的时候装入主存,这样可以提高主存空间的利用率.这样该系统所具有的主存容量会比实际主存容量大很多,这样的存 ...
最新文章
- 漫画:设计模式之 “外观模式”
- Serverless,后端小程序的未来
- python兼职平台信号处理_如何在Windows机器上处理python中的信号
- 利用qsort二级排序
- 【记录】jenkins 安装及环境配置(一)
- golang实现RPC的几种方式
- c++ time.h 用法
- 【转】杜月笙识人秘诀!!
- Toon Boom Harmony 12 for Mac(二维动画设计工具)
- Linux下编译googletest
- java对谷歌不兼容_谷歌浏览器不兼容的一些Js
- 相亲交友小程序,案例:情深深之恋
- ISO27001风险评估实施流程(详细版)
- python拟合二元一次函数
- 游戏使用html签名,利用HTML5实现电子签名板文字涂鸦代码
- 苹果14手机怎么投屏到mac电脑上面?
- web前端开发工程师养成记
- (原)python中matplotlib的颜色及线条控制
- springMVC中ajax使用json 对象 出现 状态代码: 415 Unsupported Media Type
- ksy是谁_你还记得谁?人皇Sky曝曾经魔兽知名选手近况
热门文章
- mkyaffs2image的用法
- 腐蚀函数cvErode 和 膨胀函数cvDilate
- 有限元笔记06-三维实体单元
- VINS状态估计篇-视觉sfm初始化
- oracle 命令日志输出,ORACLE常用命令日志
- 编程 跳台阶_Java版剑指offer编程题第8题--跳台阶
- php 结构体_【开发规范】PHP编码开发规范下篇:PSR-2编码风格规范
- Vue学习笔记(八) 组件进阶
- TensorFlow: couldn’t open CUDA library cupti64_80.dll、InternalError: Blas SGEMM launch failed
- WCF netTcpBinding寄宿到IIS7