自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 动态规划1

首先,动态规划的最基本要求在于无后效性——即结果态之和之前某态有关,并且对于该之前态我们并不关心它到底是怎么来的——和n到n+1的跳跃一样,它也是依赖转移方程得来。比如0-1背包:我们只要永远依赖dp i j=max(dp i-1 j,dp i-1 j-wi +vi)这个转移方程即可,并不在乎它具体细节。从0-1背包衍生出:完全背包,多重背包,满背包问题等。完全背包:每一件物品的数量无

2018-02-03 17:48:51 204

原创 平衡二叉树的c语言实现

平衡二叉树首先该树挺简单的。大概解释个意思:这种树的最基本的操作是LL和RR两个单旋转函数,这两个函数和链表的插入函数挺相像的。这两个函数要牢记。其次是LR和RL两个双旋转函数,要在心里绘制出这两种树的形状,这样调用LL还是RR很明了了。1,在进行增删节点时,和二叉查找树算法一致,不过是多了一步判断左右子树高度并对不符合规格限制的树单旋转抑或是双旋转,并更新高度(这一步很关

2018-01-20 17:25:02 840 1

原创 深入理解快速排序

快速排序分为两部分:1,partition函数,找到基准所在的位置并返回,这个函数的用途非常多,不仅在快速排序,而且在线性时间选择中也运用广泛,这个函数有多种写法,我仅会两种。2,快排函数本身,通过递归调用自身,每次调用可以使一个元素回归正确的位置,并使该元素之前的元素都小于该元素,之后的元素都大于该元素(递归的退出条件是base>=top)。这样,我们可以最后把整个数列割到最小两个元素的

2018-01-10 14:56:43 263

原创 改良树——线索二叉树

在普通的二叉树中,我们不难通过遍历得到某种序列串——中序的,先序的,后序的,层次的,等等等等。在构建线索树的过程,是很简单的,只需要判断pre节点的rchild有没有指向节点,当前lchild有没有指向节点,则把这些空余的指针指向合适的位置即可,思路和操作简单,不赘述。但是对遍历线索二叉树,寻找前驱以及后继节点,利用中序二叉树寻找先序后继以及后序前驱需要其他操作。1,寻找前驱,后继节点

2017-12-31 13:49:35 281

原创 树的基本操作

1,树是一种极重要的逻辑结构,每个节点都仅有一个父亲节点。以下以二叉树的各种算法为例理解树的结构。1.1 二叉树的创建BiTree CreatTRee(){ BiTree T; char c; c=getchar(); if(c=='#') T=NULL; else{ T=(BiTree)malloc(sizeof(BiNode)); T->dat

2017-12-25 16:41:13 363

原创 链表,顺序表的基本操作及其实现的栈与队列

1,顺序表在c里面,这一部分也就是静态表和动态表的实现,插入,删除有丁点意思。静态表靠数组和长度实现(注意长度这一点,因为它反映了当前表内容长度,十分重要)动态表依靠申请连续空间实现(结构体内部包括首地址,当前规模以及长度)插入: int *p; p=&(w.a[k-1]); int *q; for(q=&(w.a[w.length-1]);q>=p;--q) {

2017-12-23 22:03:59 543

原创 分治算法——假硬币寻找,硬币找零,众数问题

分治算法(dac),是对递归或者递推技术的一种具体运用。处理问题的过程中,我们有时的确分而且治了(线性时间选择,归并排序),但更多情况下,恐怕是一种分而不治的思想(假硬币寻找,众数问题)通过递归技术,在逻辑上不断使原问题规模缩减,类似树从根节点不断寻值,直到返回目标值。1,假硬币寻找:问题很简单:n个数形成了一个数组,只有一个数与其他数值不同,找到其下标。思想:对于奇数个硬币,找到中间

2017-12-23 19:17:18 2205

空空如也

空空如也

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

TA关注的人

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