数据结构与算法 基于c语言篇
学习数据结构与算法走向深蓝之路
第一章:数据结构与算法概念型
数据结构:数据之间的相互关系,即是数据的组织形式.
基本组成:{
数据:信息的载体
数据元素:数据基本单位:
}
其结构形式有四种:
1,集合结构 2,线性结构. 3,树形结构 4,图形结构
在计算机中的存储有量中形式:
顺序存储(数组形式)和非顺序存储(链式存储结构)
1.1抽象数据类型:指的是数据模型或者定义在数据模型上的一组操作
(D,R,P){
D是数据对象,
R是D上的关系集
P是对D进行的操作}
ListInsert(&L,i,e):
ListDelete(&L,i,e):
插入与删除
算法是解题步骤,是指令的有限序列,一个问题的解决方案要以算法为基础.
数据结构+算法=程序
对算法进行度量:
{1,算法的时间复杂度(就是耗时间资源), 2,空间复杂维度(所占内存的度量)}
算法例子:
例1:需要额外空间
void swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
例2
void swap(int &a,int &b){
a=a+b;
b=a-b;
a=a-b;
}
算法定理(计算时间)
定理1:
如果T1(N)=O(f(N))且T2(N)=O(g(N))那么
1 ,T1(N)+T2(N)=max(O(f(N),O(g(N))
2,T1(N)*T2(N)=O(f(N)*O(g(N)
定理2:
如果T(N)是一个K次多项式,则T(N)=θ(NK)
算法5个特征:
1,有穷性,确定性,输入,输出,可行性
第二章:线性表
线性表:是同一类型的数据元素构成的一种线性数据结构
特点:{
集合中必存在一个'第一个元素'和'最后一个元素'
除第一个元素和最后一个元素外:都有唯一的前驱和唯一的后继
}
由顺序的线性表:由下向上添加数据,就像给桶里加东西.
数据结构与算法 基于c语言篇的更多相关文章
- 数据结构与算法之java语言实现(一):稀疏数组
一.概念&引入 什么是稀疏数组? 稀疏数组是面对一个二维数组中有众多重复元素的情况下,为了节省磁盘空间,将此二维数组转化为更加节省空间的一种数组,我们叫他稀疏数组. 只是听概念或许会看不明白, ...
- 【数据结构与算法】多种语言(VB、C、C#、JavaScript)系列数据结构算法经典案例教程合集目录
目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 2. 专栏地址 「 刘一哥与GIS的故事 」之<数据结构与算法> 3. 专栏目录 [经典回放]多种语言系列数据结构算法 ...
- Python数据结构与算法设计(总结篇)
的确,正如偶像Bruce Eckel所说,"Life is short, you need Python"! 如果你正在考虑学Java还是Python的话,那就别想了,选Pytho ...
- 探索颜色渐变绘制算法(基于Processing语言) 第一部分
突然间意识到连续变化的颜色在程序中是如何实现的这一问题.没错,就想有事找事,我会分好几部分慢慢探寻,其实笔者也不会,咱一起研究.ok,我们开始! 第一部分 初始部分就从官方案例来入手学习.官方给了三个 ...
- 《串并行数据结构与算法(SML语言)实验》题解
注意:本题解仅供参考学习,请勿直接抄袭代码,否则造成的后果和笔者无关. 第一题: 题意: 对n个数升序排序. 题解: 快排,不解释. 代码(省略了输入输出函数,下同): val n = getInt ...
- java数据结构和算法编程作业系列篇-数组
/** * 编程作业 2.1 向highArray.java程序(清单2.3)的HighArray类添加一个名为getMax()的方法,它返回 数组中最大关键字的值,当数组为空时返回-1.向main( ...
- 数据结构与算法1-2 C语言运行时间检测算法
#include <stdio.h> #include <math.h> #include <time.h> clock_t start,stop; #define ...
- 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现
本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是 ...
- 【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
随机推荐
- cf113D. Museum(期望 高斯消元)
题意 题目链接 Sol 设\(f[i][j]\)表示Petya在\(i\),\(Vasya\)在\(j\)的概率,我们要求的是\(f[i][i]\) 直接列方程高斯消元即可,由于每个状态有两维,因此时 ...
- H5音乐播放器源码地址
源码获取 https://pan.baidu.com/s/1pR_bhIFFQWU6TK9ZvrRWIA 安卓安装包下载地址 https://pan.baidu.com/s/1Z8HF5LY ...
- [性能调优]在PeopleSoft中使用函数索引
那些没有在PeopleSoft系统遇到性能问题的人,特别是基于Oracle数据库的PeopleSoft,可能不知道基于函数的索引. 根据定义,基于函数的索引是使用如下方法定义的: 基于表达式,例如算术 ...
- Clumsy 弱网络环境模拟工具使用介绍
Clumsy 弱网络环境模拟工具使用介绍 by:授客 QQ:1033553122 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时 ...
- 大数据【五】Hive(部署;表操作;分区)
一 概述 就像我们所了解的sql一样,Hive也是一种数据仓库,不同的是hive是在hadoop大数据生态圈中所用.这篇博客我主要介绍Hive的简单表运用. Hive是Hadoop 大数据生态圈中的数 ...
- Mongodb的入门(6)副本集
Mongodb的副本集:(有两种情况,主从复制,副本集) 这次我来说一下mongodb的副本集,副本集的出现可以有效的保证mongodb的单点问题,对数据的稳健性有一定辅助作用: MongoDB复制: ...
- python 实现int函数
拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,python实现字符串转整型的int方法 python已经实现了int方法,我们为什么还要再写一遍,直接用不就好了?事实确实如此,但 ...
- Win10命令行激活 & 电脑组装
系统激活: 1. 管理员身份运行 cmd 2. slmgr.vbs /upk ...
- 使用 D: 盘作为 Windows VM 上的数据驱动器
如果应用程序需要使用 D 盘存储数据,请按照以下说明使用其他驱动器号作为临时磁盘. 切勿使用临时磁盘来存储需要保存的数据. 如果调整虚拟机大小或停止(解除分配)虚拟机,这可能会触发将虚拟机放置于新虚拟 ...
- MyISAM和InnoDB的主要区别和应用场景
主要区别: 1).MyISAM是非事务安全型的,而InnoDB是事务安全型的. 2).MyISAM锁的粒度是表级,而InnoDB支持行级锁定. 3).MyISAM支持全文类型索引,而InnoDB不支持 ...