自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 问答 (2)
  • 收藏
  • 关注

原创 双向链表

双向链表简介和举例解析双链表结构体的定义1: 结构体: 主函数中: 调用函数中:双链表结构体的定义2: 结构体: 主函数中: 调用函数中:头插法:尾插法:双向链表代码1#include <stdio.h>#include <malloc.h>#define true 1#define false 0typedef int bool;typedef int ElemType;t

2017-03-28 23:39:41 1132

原创 链表之单链表

链表表示方法方法1: 结构体: 主函数中: 调用函数中:方法2:(这里用的是栈的存储方式,但同样适用于链表) 结构体: 主函数中: 调用函数中:方法3: 结构体: 主函数中: 调用函数中: (这里的Status为 typedef int Status)单链表代码#include<stdio.h>#include<stdlib.h>struct student{

2017-03-28 11:46:56 361

原创 内部排序之归并排序

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。归并排序基本思想设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列)中,待合并完成后将 temp

2017-03-27 19:33:14 591

原创 内部排序之选择排序(直接选择排序,堆排序)

目录堆排序简介及其代码直接选择排序简介及其代码选择排序总结堆排序简介及其代码1、首先明确完全二叉树概念:  深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。其次明确堆的概念:  堆是具有以下性质的完全二叉树,每个结点的值小于或等于其孩子结点的值(小根堆),每个结点的值大于或等于其孩子结点的值(大根堆)堆的定义如图所示:2、

2017-03-27 10:00:47 503

原创 内部排序之交换排序

目录快速交换排序简介及其代码冒泡交换排序及其代码交换排序总结快速排序简介及其代码我们知道假如一个已排好序的数组,假如是从小到大升序排列,则随便取其中一个数N,则N左边所有数都小于或等于N,右边的都大于或等于N.那反向思维下,我们先随便取数组第一个数为基准X,然后将所有小于它的数交换到左边,大于它的数交换到右边.最后X可能就被交换到中间某个位置.以X为分界线,数组被分成两部分.接着再对两部分重

2017-03-26 18:01:46 502

原创 内部排序之插入排序(直接插入排序,二分插入排序,希尔插入排序)

目录直接插入排序简介及其代码二分插入排序简介及其代码希尔插入排序简介及其代码插入排序总结直接插入排序简介及其代码简介: 直接插入排序过程: 代码块:#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef int KeyType;typedef struct{ KeyType key;

2017-03-26 16:40:07 605

原创 动态规划之最优二叉搜索树

目录最优二叉搜索树简介举例以及详细分析代码块测试结果最优二叉搜索树简介1、概念引入  基于统计先验知识,我们可统计出一个数表(集合)中各元素的查找概率,理解为集合各元素的出现频率。比如中文输入法字库中各词条(单字、词组等)的先验概率,针对用户习惯可以自动调整词频——所谓动态调频、高频先现原则,以减少用户翻查次数。这就是最优二叉查找树问题:查找过程中键值比较次数最少,或者说希望用最少的键值比

2017-03-26 14:40:47 2157 3

原创 栈之链栈

目录链栈的简介举例以及详细分析代码块测试结果链栈的简介链栈则没有上溢的限制,它就象是一条一头固定的链子,可以在活动的一头自由地增加链环(结点)而不会溢出,链栈不需要在头部附加头结点,因为栈都是在头部进行操作的,如果加了头结点,等于要在头结点之后的结点进行操作,反而使算法更复杂,所以只要有链表的头指针就可以了。举例以及详细分析**栈可以采用链式存储结构表示,采用这种结构表示的栈简称为链栈。

2017-03-26 11:17:09 435

原创 栈之顺序栈

目录顺序栈的简介举例以及详细分析代码块测试结果顺序栈的简介在顺序栈中有”上溢”和”下溢”的概念。顺序栈好比一个盒子,我们在里头放了一叠书,当我们要用书的话只能从第一本开始拿(你会把盒子翻过来吗?真聪明^^),那么当我们把书本放到这个栈中超过盒子的顶部时就放不下了(叠上去的不算,哼哼),这时就是”上溢”,”上溢”也就是栈顶指针指出栈的外面,显然是出错了。反之,当栈中已没有书时,我们再去拿,看

2017-03-26 11:07:06 955

原创 树之二叉查找树(二叉搜索树)

目录二叉查找树简介二叉查找树举例以及详细分析代码块测试结果以及参考图纸二叉查找树二叉树的一个重要的应用是它们在查找中的使用。使二叉树成为查找树的性质是,对于树中的每个结点X,它的左子树中所有关键字值小于X的关键值,而它的右子树中所有关键字大于X的关键值。在图1中,左边的树是二叉查找树,但右边的树则不是(想一想为什么)。 二叉查找树举例以及详细分析二叉查找树定义:又称为是二叉排序树(Bin

2017-03-22 21:53:51 508

原创 树之完全二叉树(AVL树)

目录AVL树的简介AVL举例以及详细分析代码块测试结果和参考图纸备注AVL树的简介AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。 它是最先发明的自平衡二叉查找树,也被称为高度平衡树。相比于”二叉查找树”,它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复

2017-03-22 20:52:01 3240 1

原创 图之从一个顶点到其余各个顶点的最短路径(有向图)

目录从一个顶点到其余各个顶点最短路径的简介举例以及详细分析代码块测试结果从一个顶点到其余各个顶点最短路径的简介1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,

2017-03-21 22:55:57 23000 2

原创 贪心算法之哈夫曼编码

目录哈夫曼编码简介举例以及详细说明代码块测试结果哈夫曼编码简介二叉树中有一种特别的树——哈夫曼树(最优二叉树),其通过某种规则(权值)来构造出一哈夫曼二叉树,在这个二叉树中,只有叶子节点才是有效的数据节点(很重要),其他的非叶子节点是为了构造出哈夫曼而引入的! 哈夫曼编码是一个通过哈夫曼树进行的一种编码,一般情况下,以字符:‘0’与‘1’表示。编码的实现过程很简单,只要实现哈夫曼树,通过

2017-03-21 20:50:08 4518

原创 图的最小生成树算法

目录图的最小生成树算法之Prim算法简介Prim算法举例及其详解Prim代码块图的最小生成树算法之Kruskal算法简介Kruskal算法举例及其详解Kruskal代码块图的最小生成树算法之Prim算法简介1、生成树  如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树(SpanningTree)。  生成树是连通图的包含图中的所有顶点的极小连

2017-03-20 23:25:11 945

原创 图的总括之存储和遍历

目录图的概念的基本术语图的存储结构之邻接矩阵存储图的存储结构之邻接表存储图的深度优先遍历(DFS)图的广度优先遍历(BFS)图的概念的基本术语图:由有穷、非空点集和边集合组成,简写成G(V,E); Vertex:图中的顶点;无向图:图中每条边都没有方向; 有向图:图中每条边都有方向;无向边:边是没有方向的,写为(a,b) 有向边:边是有方向的,写为《a,b》 有向边也成为弧;开始

2017-03-15 23:15:34 386

原创 动态规划之传纸条(多线程dp)

目录传纸条问题简介举例以及详细分析代码块测试结果传纸条问题简介题目描述: 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐

2017-03-14 20:29:59 2422 1

原创 动态规划之数的划分

目录数的划分简介举例以及详细分析备注代码块测试结果数的划分简介题目描述 积极探索太空的回报是丰厚的,因为魔法世界的科学家后来通过挖掘史前文明遗址发现,他们所在的星球,每隔一亿五千万年左右就会发生一次由天外陨石或其他意外事件引发的物种大灭绝。称霸星球一亿多年的恐龙,就是因此而灭绝的。只有积极进取,锐意创新的宇宙文明,才有可能躲过这场“天罚”。现在,天顶星人对魔法世界发动了大规模陨石攻击,

2017-03-14 17:27:59 819

原创 动态规划之方格取数(多线程dp)

多线程简介多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 问题描述问题描述   设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。   某人从图的左上角的A 点(1,1)出发,可以向下行走,也可以向右走,直到到达右下角的B点(N,N)。在走过的路上,他可以取走方格中的数(取走后的方

2017-03-13 00:27:42 1889

原创 动态规划01背包

目录01背包问题简介详细说明状态转移方程详解举例代码块测试结果01背包问题简介0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。因此,该问题称为0-1背包

2017-03-09 14:24:24 564

原创 动态规划电路布线

目录电路布线简介举例及其详细说明代码块测试结果电路布线简介在一块电路板的上下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)),将上端接线柱i与下端接线柱π(i)相连,如图,其中,π(i),1<=i<=n,是(1,2……,n)的一个排列.导线(i,π(i))称为该电路板上的第i条连线.对于任何1<=i小于j<=n,第i条连线和第j条连线相交的充分且必要条件是π(i)>π(j)。

2017-03-08 21:27:32 2599 1

原创 动态规划之多边形游戏

目录多边形游戏简介举例以及详细分析代码块测试结果多边形游戏简介问题描述: 多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符“+”或“*”。所有边依次用整数从1到n编号。  游戏第1步,将一条边删除。  随后n-1步按以下方式操作:  (1)选择一条边E以及由E连接着的2个顶点V1和V2;  (2)用一

2017-03-08 01:17:42 4785 4

原创 动态规划之图形的压缩

目录图形的压缩简介详细说明最优子结构性质举例代码块测试结果图形的压缩简介在计算机中常用像素点灰度值序列{p1,p2,….,pn}表示图像。其中,整数pi(1<=i<=n)表示像素点i的灰度值。 灰度值的范围是0~255。因此需要用8位表示一个像素。压缩的原理就是吧序列{p1,p2,……pn}进行设断点,将其分割成一段一段的。分段的过程就是要找出断点,让一段里面的像素的最大灰度值比较小

2017-03-07 21:31:58 763

原创 动态规划之大数乘积

动态规划大数乘积

2017-03-05 11:24:15 526

原创 动态规划之最长公共子序列

目录最长公共子序列简介举例说明并分析代码块测试结果最长公共子序列简介一个给定序列的子序列是在该序列中删去若干元素后得到的序列,确切的说,若给定序列X={x0,x1…,xm-1}, 则另一序列Z={z0,z1,…,zk-1},X的子序列是指存在一个严格的下标序列{i0,i1…,ik-1},使得对于所有的j=0,1,…,k-1有Zj=Xij。例如序列Z={B,C,D,B}是序列X={A,B,

2017-03-04 12:26:07 536

原创 动态规划之矩阵连乘问题

目录矩阵连乘问题简介举例说明并详细分析备注代码块测试结果矩阵连乘问题简介1设计求解具体问题的动态规划算法的第一步是刻画该问题的最优解结构特征。为方便起见,将矩阵连乘积A(i)A(i+1)…A(j)简记为A[i:j]。考察计算A[1:n]的最优计算次序。设这个计算次序在矩阵A(k)和A(k+1)之间将矩阵链断开,(1<=k小于n),则其相应的完全加括号方式为((A1…Ak)(Ak+1…An

2017-03-03 23:21:57 2666

原创 动态规划之矩阵连乘问题的两个矩阵相乘

动态规划之矩阵连乘问题的两个矩阵相乘矩阵连乘简介详细例子以及解析图片链接和图片上传代码测试结果矩阵连乘简介给定n个矩阵{A1,A2,…,An},其中,Ai与Ai+1是可乘的,i=1,2,….n-1。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有不同的计算次序。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q矩阵,B是一个q×r矩阵,则其乘积C=AB是一个p×

2017-03-03 21:27:32 1825

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除