学习数据结构与算法走向深蓝之路

第一章:数据结构与算法概念型

数据结构:数据之间的相互关系,即是数据的组织形式.

基本组成:{

数据:信息的载体

数据元素:数据基本单位:

}

其结构形式有四种:

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语言篇的更多相关文章

  1. 数据结构与算法之java语言实现(一):稀疏数组

    一.概念&引入 什么是稀疏数组? 稀疏数组是面对一个二维数组中有众多重复元素的情况下,为了节省磁盘空间,将此二维数组转化为更加节省空间的一种数组,我们叫他稀疏数组. 只是听概念或许会看不明白, ...

  2. 【数据结构与算法】多种语言(VB、C、C#、JavaScript)系列数据结构算法经典案例教程合集目录

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 2. 专栏地址 「 刘一哥与GIS的故事 」之<数据结构与算法> 3. 专栏目录 [经典回放]多种语言系列数据结构算法 ...

  3. Python数据结构与算法设计(总结篇)

    的确,正如偶像Bruce Eckel所说,"Life is short, you need Python"! 如果你正在考虑学Java还是Python的话,那就别想了,选Pytho ...

  4. 探索颜色渐变绘制算法(基于Processing语言) 第一部分

    突然间意识到连续变化的颜色在程序中是如何实现的这一问题.没错,就想有事找事,我会分好几部分慢慢探寻,其实笔者也不会,咱一起研究.ok,我们开始! 第一部分 初始部分就从官方案例来入手学习.官方给了三个 ...

  5. 《串并行数据结构与算法(SML语言)实验》题解

    注意:本题解仅供参考学习,请勿直接抄袭代码,否则造成的后果和笔者无关. 第一题: 题意: 对n个数升序排序. 题解: 快排,不解释. 代码(省略了输入输出函数,下同): val n = getInt ...

  6. java数据结构和算法编程作业系列篇-数组

    /** * 编程作业 2.1 向highArray.java程序(清单2.3)的HighArray类添加一个名为getMax()的方法,它返回 数组中最大关键字的值,当数组为空时返回-1.向main( ...

  7. 数据结构与算法1-2 C语言运行时间检测算法

    #include <stdio.h> #include <math.h> #include <time.h> clock_t start,stop; #define ...

  8. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  9. 【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现

      本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...

随机推荐

  1. 网络基础 HTTP协议之缓存简介

    HTTP协议之缓存简介 by:授客 QQ:1033553122 用浏览器查看缓存 IE为例,Tools->Internet options -> View files,如图 点击图示的Vi ...

  2. Flutter 图片如何充满父布局

    正常我们需要显示一张图片,会用到Image这个控件.打个比方,我们加载一张本地的图片,先看一下这个Image.asset的源码: Image.asset(String name, { Key key, ...

  3. 大数据【五】Hive(部署;表操作;分区)

    一 概述 就像我们所了解的sql一样,Hive也是一种数据仓库,不同的是hive是在hadoop大数据生态圈中所用.这篇博客我主要介绍Hive的简单表运用. Hive是Hadoop 大数据生态圈中的数 ...

  4. 【Java入门提高篇】Day12 Java代理——Cglib动态代理

    今天来介绍另一种更为强大的代理——Cglib动态代理. 什么是Cglib动态代理? 我们先回顾一下上一篇的jdk动态代理,jdk动态代理是通过接口来在运行时动态创建委托类的代理对象,但是跟静态代理一样 ...

  5. LeetCode题解之Number of Segments in a String

    1.题目描述 2.题目分析 找到字符串中的空格即可 3.代码 int countSegments(string s) { ){ ; } vector<string> v; ; i < ...

  6. Oracle EBS GL 总账日记账打开报错此职责无可用函数

    系统管理员下,跑请求:

  7. 【工具推荐】截图工具 Snipaste

    0. 说明 [官网介绍] Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1 来开始截图,再按 F3,截图就在桌面置顶显示了.就这么简 ...

  8. JVM & GC 笔记

    0. 说明 转载并修改自JVM 1. JVM 1.1 什么是JVM JVM为Java虚拟机(Java Virtual Machine) Runtime data area,运行时数据区. 包含5个区域 ...

  9. mysql数据库中导入txt文本数据的方法

     安装好MySQL和Navicat 8 for MySQL 通过Navicat 8 for MySQL创建数据库test. 2 在数据库test上创建测试数据表student(主键ID,姓名,年龄,学 ...

  10. (转)glew的安装

    http://blog.sina.com.cn/s/blog_858820890100vbys.html 下载链接: https://sourceforge.net/project/downloadi ...