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

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

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

基本组成:{

数据:信息的载体

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

}

其结构形式有四种:

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. 【代码笔记】iOS-UIActionSheet字体的修改

    一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...

  2. 我最喜欢用的css3之2D转换之translate用法

    CSS3 2D 转换 div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transfor ...

  3. 工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)

    第一个是在 textarea 输入框中添加固定的内容. 代码如下: <textarea id="text" cols="30" rows="10 ...

  4. ISDBT中CC的处理疑问

    一个针对日本的数字电视应用(ISDBT)里字幕处理有一些问题,规范文档庞大又复杂,读起来还觉得语焉不详.接手遗留项目尝试处理字幕显示的问题,边读spec边看代码,先猜测.试图理解既有逻辑,再分析问题产 ...

  5. 排错-Error--memory violation  Exception ACCESS_VIOLATION received解决方

    Error -- memory violation : Exception ACCESS_VIOLATION received   by:授客 QQ:1033553122 测试代码: Action() ...

  6. linux chmod 给目录或文件赋权限 可读可写可执行

    前提:  mode权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...] 其中u表示拥有者(user),g表示与拥有者属于同一个群体(group),o表示其他以外的人(ot ...

  7. Python笔记(十三):urllib模块

    (一)      URL地址 URL地址组件 URL组件 说明 scheme 网络协议或下载方案 net_loc 服务器所在地(也许含有用户信息) path 使用(/)分割的文件或CGI应用的路径 p ...

  8. LeetCode题解之Rotate String

    1.题目描述 2.问题分析 直接旋转字符串A,然后做比较即可. 3.代码 bool rotateString(string A, string B) { if( A.size() != B.size( ...

  9. 使用FireFox插件RESTClient、HttpRequester模拟http(get post)请求

    我们写好一个接口后,需要进行测试.有时我们会写一个html表单提交,无疑增加了工作量,尤其是当参数比较多或者传json或xml数据时,效率更是大大降低.我们可以使用基于FireFox的RESTClie ...

  10. 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 ...