数据结构与算法之--基本概念

数据结构和算法各是指什么?作用是什么? 具体有哪些数据结构,又有哪些算法?

  数据结构是数据在计算机内存或者外存中的组织方式,算法就是计算机操作数据结构中数据的方式方法,比如查找、排序。

很少有数据结构是为了节省存储空间的,数据结构和算法的常见目的都集中与提高数据操作的速度上。

常见数据结构有:数组(Arrays),链表(Linked List),栈(Stack),队列(Queue),二叉树(Binary Tree),哈希表(Hash Table),图(Graph)等,

常见算法:查找,排序。

算法性能的评价方式:时间复杂度与空间复杂度、大O表示法

  算法的时间复杂度和空间复杂度分别表示,随着数据量N的增加,算法需要的时间和存储空间开销的增长趋势。

大O表示法是为了量化这种复杂度的增长趋势,从而方便地区分算法的性能。关于大O表示法,让我联想起,

在高等数学中,同阶无穷小的含义,具体是这样的:

  若当自变量x->0(或者无穷)时,函数f(x)和g(x):f(x)/g(x)=Constant。

类似的,在算法复杂度的评价上,若有一数据集,其数据量N->无穷时,两种算法的时间复杂度AF(N)/AG(N)=Constant,

就说两种算法在时间开销的增长趋势是同阶的,记为:AF=O(AG)。

常见的算法复杂度有:

O(1), O(logN), O(N), O(N*logN), O(N^2), O(2^N)等,一个比一个高阶。

时间: 2024-07-31 14:34:53

数据结构与算法之--基本概念的相关文章

数据结构与算法的基本概念

整理一下数据结构和算法的基本概念: 有序数组是按关键字升序或降序排列的,可以使用二分法查找 有序数组的查找速度比无序数组快 有序数组在插入操作中由于所有靠后的数据都需要移动以腾开空间,使用速度较慢 有序数组和无序数组的删除操作都很慢,因为数据项必须向前移动来填补已删除的数据项的洞 有序数组使用于查找频繁的数据库,插入和删除较为频繁的时候,无法高效工作 无序数组插入块,查找慢 有序数组插入慢,查找快 数组创建之后大小就固定了. 数组中每一项占用一个特定的位置,这个位置可以用一个下标号直接访问 数组

数据结构与算法 1 :基本概念,线性表顺序结构,线性表链式结构,单向循环链表

[本文谢绝转载] <大纲> 数据结构: 起源: 基本概念 数据结构指数据对象中数据元素之间的关系  逻辑结构 物理结构 数据的运算 算法概念: 概念 算法和数据结构区别 算法特性 算法效率的度量 大O表示法 时间复杂度案例 空间复杂度 时间换空间案例 1)线性表: 线性表初步认识: 线性表顺序结构案例 线性表顺序结构案例,单文件版 线性表的优缺点 企业级线性表链式存储案例:C语言实现 企业级线性表链式存储案例:C语言实现 单文件版 企业级线性表链式存储案例,我的练习  线性表链式存储优点缺点

数据结构与算法入门---基本概念

有哪些数据结构: 线性表.栈.队列.(字符)串.数组.广义表.树.二叉树.图 重点是:线性表.二叉树 对于每种数据结构都会有其添加.更新.删除.查询等操作的实现 数据结构与算法是不可分的 数据: 数据是描述客观事物的数值.字符以及能输入机器且能被处理的各种符号集合 数据的含义非常的广泛,除了通常的数值数据.字符.字符串是数据之外,声音.图像等一             切可以输入计算机并能被处理的都属数据 例如处理表示人的姓名.身高.体重等的字符.数字是数据.人的照片.指纹.三维模型.语音指令等

数据结构和算法的基本概念

数据结构:数据在计算机存储空间中的安排方式. 算法:软件程序操作这些结构的数据过程. 数据结构类型 1.数组: 优点:插入快,指导下标可以快速存取. 缺点:查找慢,删除慢,大小固定. 2.有序数组: 优点:比无需的数组查找快. 缺点:删除和插入慢,大小固定. 3.栈: 优点:提供后进先出的方式的存取. 缺点:存取其他项很慢 4.队列: 优点:提供先进先出的方式的存取. 缺点:存取其他项很慢. 5.链表: 优点:插入快,删除快. 缺点:查找慢. 6二叉树: 优点:查找,插入,删除都快.(如果树保持

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习JavaScript数据结构与算法第3版》

最近几年学前端的人会越来越多,再加上前端的范围越来越广,从前端发展为全栈,数据结构和算法的功底要求势必将越来越高. <数据结构与算法图解>电子书及代码是数据结构与算法的入门指南,不局限于某种特定语言,略过复杂的数学公式,用通俗易懂的方式针对编程初学者介绍数据结构与算法的基本概念,培养编程逻辑.主要内容包括:为什么要了解数据结构与算法,大O表示法及其代码优化利用,栈.队列等的合理使用,等等. <算法图解>电子书非常的体贴,看起来也很快,用图来解释算法是非常好的想法,可作为学习数据结构

python数据结构与算法 36 树的基本概念

树 学习目标 理解什么是树及使用方法 学会使用树实现映射 用列表实现树 用类和引用实现树 用递归实现树 用堆实现优先队列 树的例子 前面我们学习过栈和队列这类线性数据结构,并且体验过递归,现在我们学习另一种通用数据结构,叫做树.树在计算机科学中应用广泛,象操作系统.图形学.数据库系统.网络等都要用到树.树和他们在自然界中的表哥--植物树--非常相似,树也有根,有分枝,有叶子.不同之处是,数据结构的树,根在顶上,而叶子在底部. 在开始学习之前,我们来研究几个普通的例子.第一个是生物学上的分级树.图

[数据结构和算法]算法基本概念

算法基本概念: 算法:用来对数据的操作作描述,是对问题求解的步骤的描述.是一系列将输入转为输出的计算步骤 算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n) = O(n) 常见时间复杂度递增次序:常数 O(1) , 对数阶O(log2^n) , 线性阶O(n) , 线形对数阶O(nlog2^n),平方阶O(n^2),立方阶O(n^3),指数阶O(2^n),O(n!),O(n^n)当n值增大,算法时间复杂度即变大,执行效率变低 最坏时间复杂度:最

java数据结构与算法之树基本概念及二叉树(BinaryTree)的设计与实现

[版权申明]未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53727333 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制) java数据结构与算法之栈(Stack)设

数据结构与算法之线性表

前言 上一篇<数据结构和算法之时间复杂度和空间复杂度>中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明.这一篇主要介绍线性表. 线性表属于数据结构中逻辑结构中的线性结构.回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构.几何结构.树形结构和图形结构四大结构.其中,线性表就属于线性结构.剩余的三大逻辑结构今后会一一介绍. 线性表 基本概念 线性表(List):由零个或多个数据元素组成的有限序列. 注意: 1.线性表是一个序列. 2.0个元素构成的线性表是空表.