数据结构与算法 基于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)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
随机推荐
- 【代码笔记】iOS-UIActionSheet字体的修改
一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...
- 我最喜欢用的css3之2D转换之translate用法
CSS3 2D 转换 div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transfor ...
- 工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)
第一个是在 textarea 输入框中添加固定的内容. 代码如下: <textarea id="text" cols="30" rows="10 ...
- ISDBT中CC的处理疑问
一个针对日本的数字电视应用(ISDBT)里字幕处理有一些问题,规范文档庞大又复杂,读起来还觉得语焉不详.接手遗留项目尝试处理字幕显示的问题,边读spec边看代码,先猜测.试图理解既有逻辑,再分析问题产 ...
- 排错-Error--memory violation Exception ACCESS_VIOLATION received解决方
Error -- memory violation : Exception ACCESS_VIOLATION received by:授客 QQ:1033553122 测试代码: Action() ...
- linux chmod 给目录或文件赋权限 可读可写可执行
前提: mode权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...] 其中u表示拥有者(user),g表示与拥有者属于同一个群体(group),o表示其他以外的人(ot ...
- Python笔记(十三):urllib模块
(一) URL地址 URL地址组件 URL组件 说明 scheme 网络协议或下载方案 net_loc 服务器所在地(也许含有用户信息) path 使用(/)分割的文件或CGI应用的路径 p ...
- LeetCode题解之Rotate String
1.题目描述 2.问题分析 直接旋转字符串A,然后做比较即可. 3.代码 bool rotateString(string A, string B) { if( A.size() != B.size( ...
- 使用FireFox插件RESTClient、HttpRequester模拟http(get post)请求
我们写好一个接口后,需要进行测试.有时我们会写一个html表单提交,无疑增加了工作量,尤其是当参数比较多或者传json或xml数据时,效率更是大大降低.我们可以使用基于FireFox的RESTClie ...
- Oracle EBS OM 保留订单
DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...