数据结构之算法概念

数据结构:就好比一个大型图书馆,如何在书架上摆放图书,要考虑两个操作:

1.新书怎么插入
2.怎么找到指定的某本书

解决问题方法的效率,跟数据结构的组织方式有关,跟空间的利用率有关,跟算法的巧妙程度有关

所以什么是数据结构:

数据对象在计算机中的组织方式

1.逻辑结构

2.物理存储结构

数据对象必定与一系列加在其上的操作相关联

完成这些操作所用的方法就是算法

一个算法的好坏,主要看两方面,

时间复杂度:根据算法写成的程序在执行时耗费时间的长度,这个长度往往和输入数据的规模有关

空间复杂度:根据算法写成的程序在执行时占用存储单元的长度,这个长度往往也和输入数据的规模有关

不对算法复杂度做精确分析,大致知道增长趋势即可,所以有了复杂度的渐进表示法,O(f(n))表示上界,一般取能找到的最小的上界,最贴近真实情况的那个,因为上界有无穷多个

一个算法的复杂度为n的平方时,下意识考虑能不能转换成n*logn

两个算法相加,时间取两者最大的那一个

两个算法相乘,则最终的算法复杂度也是两个相乘(取两个上界的乘积)

多项式展开就是依据这个原则,复杂度取最大项的那个

原文地址:https://www.cnblogs.com/ymd12103410/p/9750059.html

时间: 2024-11-01 00:24:53

数据结构之算法概念的相关文章

数据结构与算法概念解析

数据之间的相互关系称为逻辑结构.通常分为四类基本结构: 集合   结构中的数据元素除了同属于一种类型外,别无其它关系. 线性结构    结构中的数据元素之间存在一对一的关系. 树型结构       结构中的数据元素之间存在一对多的关系. 图状结构或网状结构   结构中的数据元素之间存在多对多的关系. 数据结构在计算机中有两种不同的存储方法: 顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系. 链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示数据元素之

数据结构与算法概念

数据结构小白入门 数据结构指一组相互之间存在一种或多种特定关系的数据元素的集合, 当我们需要在计算机中存储这些数据时,还涉及到数据的,组织方式,在计算机中的存储方式,以及定义在该数据上的一组操作; 一组数据相互之间有某种关系 组织方式 存储方式 以及可对其进行的一组操作 理解: 我们学习的最终目的是要在计算机中存储一组数据,但是不得不先考虑数据的组织方式,在计算机中的存储方式,以及可以对这些数据进行的一组操作,当然了既然是一组数据必然表明了这写数据之间是存在想换的关联关系的;关系可能还会有多种;

数据结构与算法 基于c语言篇

学习数据结构与算法走向深蓝之路 第一章:数据结构与算法概念型 数据结构:数据之间的相互关系,即是数据的组织形式. 基本组成:{ 数据:信息的载体 数据元素:数据基本单位: } 其结构形式有四种: 1,集合结构  2,线性结构.   3,树形结构  4,图形结构 在计算机中的存储有量中形式: 顺序存储(数组形式)和非顺序存储(链式存储结构) 1.1抽象数据类型:指的是数据模型或者定义在数据模型上的一组操作 (D,R,P){ D是数据对象, R是D上的关系集 P是对D进行的操作} ListInser

java数据结构和算法

目录 (1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)--基础分析 (9)数据结构之红黑树(二)--插入操作 (10)数据结构之红黑树(三)--删除操作 (11)排序算法(一)--冒泡排序及改进 (12)排序算法(二)--选择排序及改进 (13)排序算法(三)--插入排序及改进 (14)排序算法(四)--归并排序与递归 (15)排序算法(五)--快速排

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

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

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

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

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

算法基本概念: 算法:用来对数据的操作作描述,是对问题求解的步骤的描述.是一系列将输入转为输出的计算步骤 算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用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)设

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

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