一、概念

数据结构就像是一个催化剂,如果没有原料是无用的,单是有了算法就能帮算法更快的实现任务;

数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,简单地说是数据之间的各种关系的集合。

程序设计=数据结构+算法;

解释:如果要写一个程序,需要选择一个良好的数据结构,加上良好的解决问题的算法;

二、名词解释

数据是一个最广泛的概念,数据中可以有多个数据对象,数据对象中可以有多个数据元素,数据元素中可以有多个数据项;

数据:能够输入到计算机并且能够被计算机处理的符号;

数据对象:一个类的事物;

数据元素:一个记录;

数据项:一个记录的属性;

比如:

class Person{

String name;

int age;

}

则数据对象为Person,数据元素为Person的实例,比如Person a,Person b,数据项为name、age属性;

抽象数据类型(ADT):类比于类,自定义类型;

三、数据结构介绍

数据结构:数据元素之间的相互关系,那上面的例子来说,就是a和b的关系;

数据结构分为:

(1)逻辑结构:数据元素之间的相互关系,比如a和b的关系;

-集合结构:数据元素之间没有关系;

-线性结构:数据元素之间一对一关系,例如链表;

-树结构:数据元素之间一对多关系,比如二叉树;

-图解构:数据元素之间多对多关系,比如无向图、有向图;

(2)物理结构:数据元素在计算机中的存储关系;

-顺序存储:数据元素连续存储,数据存储在连续的内存中;

-链表存储:数据元素用链表连接,存储不连续;

一、算法和数据结构的关系

算法和数据结构是密不可分的,因为如果数据结构是一个静态的东西,如果不去应用它,则只是一个很死的东西,因此我们需要算法;

比如 邻接表,只介绍他可能只是了解他的概念,但是如果我们学了DFS、BFS就知道他的用途;

二、算法概念

算法:算法是解决特定问题求解步骤的描述,指令的有限序列;

解决一个问题可能有多种算法,但是好的算法是唯一的;

空间复杂度和时间复杂度需要权衡;

算法的特性(算法的基本要求)

(1)输入输出:算法需要有输入和输出;

(2)有穷性:执行有限时间后完毕,此处的有限时间指的是你期望的时间;

(3)确定性:在输入相同的前提下,输出要唯一;

(4)可行性:能够运行出结果;

算法的设计要求(算法的理想要求)

(1)正确性:对于合法输入能够得到正确答案,对于非法输入能够得到非法提示;

(2)可读性:便于阅读,别人拿到也能够很容易的看懂;

(3)健壮性:对于非法输入,需要得到足够的提示,而不是异常;

(4)执行速度快、占用存储空间少;

度量算法效率的方法

(1)事后统计法:编写好算法后测试,一般不用,因为外部的环境会极大的影响算法的速度,比如机器的好坏、输入的规模;

(2)事先统计法:编写好算法前先估计;

判断f(n)和g(n)哪个效率高的方法:如果存在N,使得n>N时,f(n)>g(n),则f(n)劣于g(n);

算法中最坏情况是一种底线,一般我们都需要保证最坏情况小于某个时间;

大O表示法

给定运行时间,去除加法常数、只保留最高阶项、去掉最高阶项的常数,就得到大O表示法;

比如4n^2+3n+2 = O(n^2)

高斯求和算法

1+2+3+.....+99+100通过:

sum =   1  + 2 + 3  +.....+99+100

sum = 100+99+98 +.......+2  +  1

2*sum = 101*100

sum = 5050

名词解释 算法的有限性_数据结构复习之【数据结构和算法概念】相关推荐

  1. 名词解释 算法的有限性_欲借助 FFT 算法快速计算两有限长序列的线性卷积,则过程中要调用 ( ) 次 FFT 算法_学小易找答案...

    [单选题]计算 N=2 L ( L 为整数)点的按时间抽取基 -2FFT 需要 ( ) 级蝶形运算 [单选题]Les étudiants chinois, une fois arrivés en Fr ...

  2. 名词解释:对等知识互联网_网站设计理论:比较和对等

    名词解释:对等知识互联网 Equivalence and contrast, connection and distinction, categorization and non-categoriza ...

  3. 算法:线性时间选择_机器学习必修课!scikit-learn 支持向量机算法库使用小结

    本文从实践的角度对scikit-learn SVM算法库的使用做一个小结.scikit-learn SVM算法库封装了libsvm 和 liblinear 的实现,仅仅重写了算法了接口部分. 1. s ...

  4. 算法的优缺点_一文总结机器学习各算法优缺点

    关注上方"数据挖掘工程师",选择星标, 关键时间,第一时间送达! 转自Datawhale本期主题是详细总结一下机器学习各大常用算法的优缺点,十分值得收藏目录 正则化算法(Regul ...

  5. l bfgs算法java代码_数值优化:理解L-BFGS算法

    译自<Numerical Optimization: Understanding L-BFGS>,本来只想作为学习CRF的补充材料,读完后发现收获很多,把许多以前零散的知识点都串起来了.对 ...

  6. 粒子群算法组卷_粒子群(PSO)算法概念及代码实现

    粒子群算法的由来及思想 粒子群算法最早是由两名美国的科学家基于群鸟觅食,寻找最佳觅食区域的过程所提出来的,作为一种智能算法,PSO模拟的就是最佳决策的过程,鸟群觅食类似于人类的决策过程,想想在你做出选 ...

  7. slope one 推荐算法python 代码_基于协同的SlopeOne推荐算法原理介绍和实现

    Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 的协同过滤推荐算法. --文章概要 该篇文章主要介绍Slope One算法.Slope ...

  8. 名词解释 算法的有限性_数据结构与算法期中考试卷(含答案)

    玉林师范学院期中课程考试试卷 (2010--2011学年度第一学期) 命题教师:刘恒 命题教师所在系:数计系 课程名称:数据结构与算法 考试专业:信计 考试年级:09级 一.单项选择题(每题2 分,共 ...

  9. 各种排序(数据结构复习之内部排序算法总结)

    1.三种选择排序(简单选择排序,树形选择排序,堆排序) #include<iostream> #include<cstring> #include<string> ...

最新文章

  1. Android 自定义圆形图片 CircleImageView
  2. 2016-11-17试题解题报告
  3. 离开时自动提示设为首页
  4. (一)面试题:TCP三次握手
  5. 【基础】哥德巴赫猜想
  6. VOC数据集将XML转为对应的train.txt,trainval.txt,val.txt,test.txt
  7. 【报告分享】抖音-2019年下半年短视频平台营销通案.pdf
  8. VB 感染EXE 程序病毒源码
  9. mysql 自定义函数教程_Mysql 自定义函数
  10. 11g表名大小写 oracle_Oracle数据库总结
  11. CAM350 使用,典型做钢网
  12. 宿舍管理系统(简单版)
  13. Intel_80386寄存器
  14. 备课手记:把Ken Olsen换成姚明
  15. HTML CSS设计与构建网站 ([美]达科特) PDF原版​
  16. 两年制大专计算机网络技术,湖南都市五年制大专_计算机网络技术专业_2021年报名...
  17. android进入相机不显示缩略图,无法显示图片,缩略图可以
  18. python数据域宽左对齐_Python语言及其运用_第七章_像高手一样玩转数据
  19. Windows 微秒级 延时
  20. 数据结构与算法——左程云06

热门文章

  1. 服务器system文件缺失,incaseformat蠕虫病毒爆发,警惕文件丢失!
  2. ThingsBoard架构简介
  3. 基于python马蜂窝网的旅游景点推荐系统
  4. 龙格现象 图像对比及Python代码实现
  5. Spring之IOC的注入方式总结
  6. 给大家推荐一个免费好用的ico图标、png、icns下载地址!
  7. 自然数学-反函数的求导法则
  8. 水位传感器c语言程序,基于STC89C51单片机的水位传感器控制系统设计.doc
  9. 思岚科技—SLAMTEC邀你参加美国CES展会
  10. cf战队模板(html),cf战队 cf主力比赛接待战队专属频道模版