编写计算机程序解决问题的基本过程
五步: 分析问题、设计算法、编写程序、调试运行、检测结果。

算法的概念,掌握算法的描述方法,能从简单问题出发,设计出解决实际问题的算法
算法概念:一种解决问题的方法和思想。特定问题求解步骤的描述,是在计算机中表现为指令的有限序列。
算法特征: 输入: 有0个或多个输入
输出: 至少有1个或多个输出
有穷性: 有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
确定性:算法中的每一步都有确定的含义,不会出现二义性
可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成

描述方法: 自然语言百,流程图,伪代码
1、自然语言 优势:自然语言即人类语言,描述的算法通俗易懂,不用专门的训练,较为灵活。
2、流程图 优势:流程图描述的算法清晰简洁,容易表达选择结构,不依赖于任何具体的计算机和计算机程序设计语言,从而有利于不同环境的程序设计。

3、伪代码 (介于自然语言和程序语言之间)
优势:回避了程序设计语言的严格、烦度琐的书写格式,书写方便,同时具备格式紧凑,易于理解,便于向计算机程序设计语言过渡的优点。
4、机器语言 (0 1 字符串)
5、程序代码 (英文字符)

程序设计中的常用算法,能使用程序设计语言编写程序实现算法;
冒泡排序 easy,比较大小,如果前一个比后一个大,就互换位置 用python例题来理解
二分查找 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

了解算法与数据结构的关系
基本知识:
数据结构概念:
是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成,分为逻辑数据结构和存储数据结构两种(然后加上数据的运算)。
注意:
1.数据元素之间不是独立的,存在特定的关系,这些关系即结构。
2.数据结构指数据对象中数据元素之间的关系。

( 集合原则上属于非线性结构,因为数据元素间的关联不是最多一个前驱一个后继不过因为集合元素之间没有关联,又是同种类型,所以如果给每个元素(或者每条记录)人为地加上一个区分各元素用的主关键字后,各元素依照主关键字有序,就改变成为线性结构了 )

1.(数据元素之间的)逻辑结构
(是指数据之间的相互关系。通常分为四类结构)
集合结构:数据元素之间没有特别的关系,仅同属相同集合
线性结构:数据元素之间是一对一的关系 (包含内容见上图。。。图解见下图。。。)
树形结构:数据元素之间存在一对多的层次关系 见下图
图形结构:数据元素之间是多对多的关系 见下图


2.(数据元素之间的)存储结构
是指数据结构在计算机中的表示,又称为数据的物理结构。通常由四种基本的存储方法实现:
顺序存储方式 数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大。但有些操作(如插入、删除)效率较差。
数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
索引存储方式。除数据元素存储在一组地址连续的内存空间外,还需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标)。
散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。
常用的数据结构
在计算机科学的发展过程中,数据结构也随之发展。程序设计中常用的数据结构包括如下几个。
数组(Array)
数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,在各种编程语言中都有对应。一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等。数组还可以有一维、二维以及多维等表现形式。
栈( Stack)
栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。
队列(Queue)
队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。队列中没有元素时,称为空队列。
链表( Linked List)
链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。
树( Tree)
树是典型的非线性结构,它是包括,2个结点的有穷集合K。在树结构中,有且仅有一个根结点,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。
图(Graph)
图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。
堆(Heap)
堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构。
散列表(Hash)
散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

数据结构的分类 这个地方答的不全吧,得从。。。。。。。
(一)线性结构:数组、链表、队列、栈;
(二)树形结构:二叉树及其变型,线段树,巴拉巴拉;
(三)图形结构:各种图;
算法与数据结构的关系
(一)两者关系:
1.数据结构是底层,算法高层;
2.数据结构为算法提供服务;
3.算法围绕数据结构操作;
注意:
(1)数据结构只是静态的描述了数据元素之间的关系;
(2)高效的程序需要在数据结构的基础上设计和选择算法。
(二)程序 = 数据结构 + 算法
数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。一种数据结构如果脱离了算法,那还有什么用呢?实际上也不存在一本书单纯的讲数据结构,或者单纯的讲算法。
当然两者也是有一定区别的,算法更加的抽象一些,侧重于对问题的建模,而数据结构则是具体实现方面的问题了,两者是相辅相成的。
因此,数据结构是数据间的有机关系,算法是对数据的操作步骤。福建教师招考认为这两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。

5.了解线性表、栈、队列、二叉树、图的基本概念。
线性表 (一)定义:一个线性表示具有n个数据元素的有限序列。
(二)特点:同一性、有穷性、有序性。
栈 (一)定义:栈是一种具有线性结构的数据结构,是操作受限的线性表。
(二)特点:是后进先出,只能在栈顶进行插入和删除操作,入栈、出栈顺序栈中。
栈空标志:S.top=S.base;
栈满标志:S.top-S.base>=S.stacksize;
链栈中,不设头结点,头结点就是栈顶指针,栈空S=NULL。
(三)用途:数值转换,括号匹配检验、行编辑程序,迷宫问题、算数表达式求值(2个栈),递归的实现递归(算法设计方法)后调用先返回。
队列 (一)定义:一种具有线性结构的数据结构,是操作受限的线性表;
(二)特点:先进先出,只能在队尾插入元素和队头删除元素,称为入队列和出队列;
队满标志:(Q.rear+1)%MAXOQSIZE==Q.front;
链队列中,队空标志:Q.front=Q.rear;
空间范围内不会出现队满的情况。
二叉树
(一)定义:二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。二叉树常被用于实现二叉查找树和二叉堆。
(二)性质:
1.二叉树的第i层至多有2i-1个结点;
2.深度为k的二叉树至多有2k-1个结点;
3.对任意一个二叉树,若终端结点数为n0,度为2的结点数为n2,则n0=n2+1;
4.具有n个结点的完全二叉树的深度。
(三)特殊树:满二叉树,完全二叉树
1.完全二叉树:设二叉树的深度为h,除第 h层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h层所有的结点都连续集中在最左边。
2.满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树。
(四)存储:顺序存储,链式存储结构。

(一)定义:两个集合V、E组成,记为G=(V,E),其中V是顶点的有限集合,E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。
(二)基本术语:完全图、稀疏图、稠密图、子图、顶点的度(入度、出度)、权与网、路径和图、连通图、强连通图(来回都连通)、连通分量等
(三)存储结构:邻接矩阵表示法(数组表示法)、邻接表存储方法、邻接多重表、十字链表(有向图的邻接表和逆邻接表结合在一起)。
6.算法流程图

算法与程序设计相关知识相关推荐

  1. 基于ID3、C4.5算法的决策树相关知识

    文章目录 基础概念 熵 条件熵 信息增益 信息增益比 决策树生成 ID3生成算法 决策树剪枝 C4.5生成算法 基础概念 熵 离散型变量X的概率分布是P(X).它的熵H(X)orH(P){H(X) \ ...

  2. 光斑定位技术在空间激光通信中扮演着重要的角色。本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法。

    光斑定位技术在空间激光通信中扮演着重要的角色.本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法. 一.光斑定位技术 光斑定位技术是一种通过计算像素位置来确定目标物体位置的技术,广 ...

  3. Unity开发-网络.算法.平台相关知识!

    A. 网络相关知识 一.TCP 1.面向数据流.可靠.能保证消息到达顺序. 2.滑动窗口.控制发送量,发送方只能发送窗口内大小的数据包.防止发送方发送的数据过多,接收方无法处理的情况. 3.Nagle ...

  4. 计算机算法与程序设计基础知识,算法与程序设计试题带答案

    高一第二学期<算法与程序设计>学分认定试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一.单选题(每 ...

  5. 数组及字符串相关知识

    一.数组的知识 Sec1.一维数组 1.数组的引入: 当数据量很多,类型相同需要重复定义的时候,需要用数组简化问题解法. 2.数组的使用 ①定义: 数组类型 数组名 [ 常亮表达式 ] 例如:int ...

  6. 计算机程序的灵魂,如何理解算法是程序设计的灵魂

    理解算法是程序设计的灵魂:算法是计算机处理信息的基础,因为计算机程序本质上就是算法,告诉计算机确切的步骤来执行一个指定的任务. 理解算法是程序设计的灵魂: 算法是计算机处理信息的基础,因为计算机程序本 ...

  7. 计算机算法对程序设计的作用,【程序设计论文】高中算法与程序设计教学意义及有效性(共3796字)...

    摘要:算法和程序设计教学会加深学生对计算机科学的认识,使他们从游戏.聊天.打字.表格处理等对计算机工具作用的认识上升到计算机科学的高度上来,对学生的编程教育起到启蒙作用.笔者通过具体教学实例探讨在课程 ...

  8. 计算机会考程序与设计,高中信息技术算法与程序设计会考.doc

    高中信息技术算法与程序设计会考 东城区2008年高中信息技术<算法与程序设计>模块会考说明 草 稿 说明: 本会考说明以中国地图出版社出版的<算法与程序设计>为依据编写. 考试 ...

  9. 工业相机参数之帧率相关知识详解

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重 ...

最新文章

  1. MATLAB应用实战系列(五十三)-模拟退火算法(附源码)
  2. 千万条数据,Stack Overflow是如何实现快速分页的
  3. qq html制作,jquery学习练习:制作QQ简易聊天框
  4. 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
  5. 【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
  6. mongodb分片概念和原理-实战分片集群
  7. promise的链式调用
  8. JS 操作 HTML 和 AJAX 请求后台数据
  9. 基于51单片机直流电机PWM控制器设计
  10. WEB API 接口签名sign验证入门与实战
  11. 华为鸿蒙杀毒,华为鸿蒙系统
  12. 计算机分数转化成小数,分数换算成小数的方法(分数转换小数必背表)
  13. 网络复现之基于TPS的STN网络
  14. macOS iOS - 系统版本、EFI 和 SMC 固件版本
  15. STM32 内存分布探究
  16. 第一篇博客,写给自己
  17. C语言在学习编程的作用并简单了解一下C语言
  18. java中if(a.c())_if 语句中的条件语句只能是() 类型。_学小易找答案
  19. 伊利收购澳优、蒙牛私有化雅士利,乳业双雄能在“奶粉界称王”吗?
  20. 11 Tornado - 使用模板

热门文章

  1. 正月初七 | 2月18日 星期四 | 京东物流在港交所提交招股书;字节跳动回应在美上市传闻;2021年中国电影总票房破百亿...
  2. 提问的智慧!高手如何成长为高手,高手原来也是像我一样的菜鸟!
  3. nodejs服务使用pm2启动多个进程和进程守护,以及使用pm2-logrotate-ext分割日志
  4. 计蒜客题解——T1213:拯救行动
  5. Springboot使用Mapstruct拷贝对象,集成swagger2
  6. python开发环境部署以及调试教程
  7. stm32外挂spiflash的烧录算法
  8. PTA 7-209 sdut-C语言实验-数位数
  9. abaqus python_ABAQUS中的python语言入门
  10. Spsice仿真实验 例B-1