数据结构与算法 基于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)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
随机推荐
- 全局eslint不生效的处理
react项目里能用上 eslint 的 airbnb 规范真是的,对自己的编码有很好的帮助,不经可以养成良好的代码风格,而且还能检测出 state或者变量 是否 使用过, 然而,所在团队的小伙伴们, ...
- css3统一元素的宽和高
通常我们设置元素的宽和高样式经常会出现一些问题,比如以下css的设置: 比如以下的代码: <!DOCTYPE html> <html> <head> <met ...
- mysql主从不同步问题 Error_code: 1197
首先查看从的状态 mysql> show slave status \G *************************** 1. row *********************** ...
- 转: ASP.NET MVC 多语言配置
步骤1:打开VS2015新建测试项目. 步骤2:创建资源文件 App_GlobalResources下. Resource1.resx Resource1.zh-cn.resx 步骤3 ...
- Linux 中查看 DNS 与 配置
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. 查看dns 可 ...
- Django之MVC与MTV
MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写 模型 - 视图 - 控制器是一种通常用于开发用户界面的 ...
- SQL 的各种 join 用法
作者丨C.L. Moffatt http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins I am go ...
- 乘风破浪:LeetCode真题_041_First Missing Positive
乘风破浪:LeetCode真题_041_First Missing Positive 一.前言 这次的题目之所以说是难,其实还是在于对于某些空间和时间的限制. 二.First Missing Posi ...
- 后台线程下的WinFrom窗体控件操作 Invoke
Invoke(new MethodInvoker(delegate { ControllerLogout(controller_id, is_successful, description, cont ...
- 13.3SolrCloud集群使用手册之Zookeeper指令
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.upconfig java -classpath .:/home/solr/cloud/lib/* org ...