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

数据结构:数据在计算机存储空间中的安排方式。

算法:软件程序操作这些结构的数据过程。

数据结构类型
1.数组:
优点:插入快,指导下标可以快速存取。
缺点:查找慢,删除慢,大小固定。
2.有序数组:
优点:比无需的数组查找快。
缺点:删除和插入慢,大小固定。
3.栈:
优点:提供后进先出的方式的存取。
缺点:存取其他项很慢
4.队列:
优点:提供先进先出的方式的存取。
缺点:存取其他项很慢。
5.链表:
优点:插入快,删除快。
缺点:查找慢。
6二叉树:
优点:查找,插入,删除都快。(如果树保持平衡)
缺点:删除算法复杂。
7.红-黑树:
优点:查找,插入,删除都快。而且树总是平衡的。
缺点:算法复杂。
8.2-3-4树:
优点:查找,插入,删除都快。树总是平衡的,类似的数对磁盘存储有用。
缺点:算法复杂。
9.哈希表:
优点:如果关键字已知则存取极快,插入快
缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分。
10.堆:
优点:插入,删除快,对最大数据项的存取很快。
缺点:对其它数据项存取慢。
11.图:
优点:对现实世界建模。
缺点:有些算法慢且复杂。

算法的概述

  1.插入数据。

  2.查找数据。

  3.删除数据。

时间: 2024-10-21 23:02:29

数据结构和算法的基本概念的相关文章

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

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

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

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

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

数据结构和算法各是指什么?作用是什么? 具体有哪些数据结构,又有哪些算法? 数据结构是数据在计算机内存或者外存中的组织方式,算法就是计算机操作数据结构中数据的方式方法,比如查找.排序. 很少有数据结构是为了节省存储空间的,数据结构和算法的常见目的都集中与提高数据操作的速度上. 常见数据结构有:数组(Arrays),链表(Linked List),栈(Stack),队列(Queue),二叉树(Binary Tree),哈希表(Hash Table),图(Graph)等, 常见算法:查找,排序. 算

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

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

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习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个元素构成的线性表是空表.