自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 矩阵快速幂

矩阵矩阵的定义和运算可以去看教材或者百度,这里就不叙述了快速幂其实思路和数的快速幂一样先来看看数的快速幂:比如我们求2的10次方,如果直接2*2*2*2……2的话,需要9次乘法,但如果这样的话:((2*2)(2*2))((2*2)(2*2))*(2*2)的话就只需要4次乘法代码实现的话就是:int power(int x,int N){ if(N <= 1) return x;

2017-07-09 10:20:16 271

原创 二项队列的简单实现

二项队列  二项队列也是优先队列的一种实现方式,之前有用左式堆和二叉堆来实现优先队列,不过二项队列与左式堆和二叉堆的不同在于二项队列能有效的支持合并/插入/DeleteMin操作,每次操作的最坏运行时间是O(log n),对于插入操作,平均是花费常数时间什么是二项队列  与左式堆和二叉堆不同的是,二项队列不是树,而是树的集合,也就是森林.   这个森林中,每个高度最多只有一棵树. 这里不再详细

2017-05-18 12:33:57 408

原创 左式堆的简单实现(C语言描述)

左式堆左式堆是优先队列的一种实现,它的目的主要是为了解决二叉堆的合并问题.(你将在后面看到左式堆是如何用递归来优美地进行合并的)零路径长把任意节点X的零路径长(null path length, NPL) Npl(X) 定义为从X到一个没有两个儿子的节点的最短路径长。因此,具有0个或1个儿子的节点的Npl值为0,而Npl(NULL)=-1。注意,任意节点的零路径长比它的各个儿子节点的最小值多1。堆序

2017-04-03 14:27:46 479

原创 POJ1979:Red and Black(广度优先搜索)

原题内容There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he c

2017-04-03 11:59:57 407

原创 CSU1855:Shut the Box(二进制状态压缩+BFS)

题目内容 原题地址http://acm.csu.edu.cn/csuoj/contest/problem?cid=2128&pid=F:Shut the Box is a one-player game that begins with a set of N pieces labeled from 1 to N. All pieces are initially “unmarked” (in

2017-04-01 23:39:14 506

原创 thinkphp源码分析(1)--- 入口文件

本文是基于thinkphp3.2的 我下载的是thinkphp3.2完整版,直接就放在本地了 现在的目录结构是: Application Public ThinkPHP index.php README.md应用入口文件: index.php// 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<')) di

2017-02-15 13:13:11 662

原创 优先队列的简单实现-二叉堆实现

二叉堆二叉堆简介 二叉堆是优先队列的一种实现方式 同二叉查找树一样,二叉堆也有结构性和堆序性结构性 堆是一棵除底层外完全被填满的树堆序性 使操作被快速执行的性质是堆序性。在这里,我们想实现的是快速找出最小值(最大值),因此最小值(最大值)应该在根上。 所以我们可以得出一个堆序性:在堆中,对于每一个节点X,X的父亲的值应该小于等于(大于等于)X的值。 如果你不知道二叉树这些知识,建

2017-01-21 20:08:06 685

原创 PHP简单实现动态加载模块

## 动态加载模块简介动态可以理解成运行时按需加载代码(不是运行时编译)加载模块加载模块这种形式可以用于对已有系统的扩展(在不改动系统核心代码的情况下)。 比如,你做了一个社交网站,想要为你的网站增加新的功能,如要要去重新改动原来的代码,一是麻烦,而是可能引起新的问题。 不过如果你实现了模块话加载,那很大程度上就只需要写一个新的模块就行了,而不用去改动原来的代码。 现在也有很多这种模式的系

2017-01-21 15:33:20 4190

原创 ijkplayer-android的简单使用

## 依赖项目ijkplayer-java简单使用布局文件<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro

2017-01-15 20:27:49 2645

原创 Floyd-Warshall算法求任意两点间的最短路(图论算法)

算法思路简介假设只使用顶点0~k和 i,j ,并且我们记顶点i到j的最短路径长为dp[ k + 1 ][ i ][ j ],k = -1表示只使用i,j,所以dp[ 0 ][ i ][ j ] = cost[ i ][ j ]. 只使用0~k时,有经过k和不经过k两种情况,所以dp[ k + 1 ][ i ][ j ] = min( dp[ k ][ i ][ j ] , dp[ k ][ i ]

2017-01-11 14:43:02 921

原创 POJ 1651:Multiplication Puzzle 区间dp

POJ 1651 题解

2017-01-11 13:45:40 252

原创 优先队列--二叉堆实现

二叉堆### 二叉堆简介 二叉堆是优先队列的一种实现方式 同二叉查找树一样,二叉堆也有结构性和堆序性#### 结构性 堆是一棵除底层外完全被填满的树#### 堆序性 使操作被快速执行的性质是堆序性。在这里,我们想实现的是快速找出最小值(最大值),因此最小值(最大值)应该在根上。 所以我们可以得出一个堆序性:在堆中,对于每一个节点X,X的父亲的值应该小于等于(大于等于)X的值。 如果

2017-01-10 17:57:56 411

原创 Dijkstra算法的两种实现方法

第一种 复杂度( O(V^2) ) 每次从尚未使用过的点中找出一个距离最小的点,然后更新相关的边int cost[MAX_V][MAX_V];int d[MAX_V];bool used[MAX_V];int V;void dijkstra_1(int s){ fill(d,d + V,INF); fill(used,used + V,false); d

2017-01-10 11:25:37 745

原创 android pagerview实现自动滑动

首先自定义一个View继承自ViewPagerpublic class BannerView extends ViewPager然后定义几个需要用到的东西 private static final int AUTO_SCROLL = 1001; private Handler mHander; private ScheduledExecutorService mScheduledE

2016-12-20 21:23:38 429

原创 最长回文子串-解法一

其实最最简单的算法,也是效率最低的应该就是枚举子串,不过在这里没有必要拿来写解法一是在枚举子串上优化的 我们用[a,b]来表示子串,即从位置a到位置b的子串假设现在我们已经知道了子串[x,y]不是回文串,那么[x-1,y+1],[x-2,y+2]….[x-n,y+n]还有可能是回文串吗? 当然不可能!!所以我们的解法一就是遍历一遍字符串,然后分别计算以每个位置为中心的最长回文串的长度,最后选取其

2016-12-20 14:33:47 259

原创 散列表(平方探测法解决冲突)

用平方探测法来解决冲突的实现头文件:#ifndef HASHQUAD_H_INCLUDED#define HASHQUAD_H_INCLUDEDtypedef unsigned int Index;typedef Index Position;typedef int ElementType;struct HashTbl;typedef struct HashTbl *HashTable;Has

2016-12-14 17:02:33 2975

原创 Hash 散列表(分离链接法解决冲突)

分离链接法的思路是将散列到同一个值的所以元素保留到一个表中。头文件:#ifndef HASHSEP_H_INCLUDED#define HASHSEP_H_INCLUDEDstruct ListNode;typedef struct ListNode *Position;struct HashTbl;typedef struct HashTbl *HashTable;typedef int

2016-12-04 17:35:23 755

原创 AVL树的简单实现

AVL树是在二叉查找树的基础上加了一个平衡条件,目的是为了防止二叉查找树在某一边的深度过大而使效率降低 AVL树的关键是两个单旋转:左旋转和右旋转 双旋转也就是这两个旋转的组合旋转的话 用图是最好解释的 下面用从别人那里盗来的图来说明下吧 想搞明白的话,自己照着这个图里面的画一画就差不多了那么下面我就上代码了:头文件:#ifndef AVLTREE_H_INCLUDED#define A

2016-11-27 21:07:32 439 1

原创 二叉查找树的简单实现(C语言版)

老司机不多说,直接上代码 头文件:#ifndef BINARYTREE_FIND_H_INCLUDED#define BINARYTREE_FIND_H_INCLUDEDstruct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;typedef int ElementType;S

2016-11-06 16:49:32 1865

原创 android fragmenttabhost 不能将tabcontent定义在外面的解决办法

<FrameLayout android:id="@+id/tabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <com.duandianer.ddr_android.Wid

2016-11-03 13:35:36 1381

原创 Josephus问题的一种解法(链表实现)

这里并不是原始的Josephus问题,而是其“通用版”,而历史上的那个只是个特殊情况 下面直接给代码:#include <stdio.h>#include <stdlib.h>struct People;typedef struct People *PtrToPeople;struct People{ int Position; PtrToPeople Next;};

2016-10-30 15:38:36 351

原创 队列的数组实现(C语言描述)

队列也是一种简单却很有用的数据结构,其特点是先进先出,基本操作是enqueue(入列)和dequeue(出列) 下面给出数组实现的代码:#ifndef QUEUE_H_INCLUDED#define QUEUE_H_INCLUDEDstruct QueueRecord;typedef struct QueueRecord * Queue;typedef double ElementType;

2016-10-25 16:19:11 4328

原创 栈的数组实现(C语言版)

这次是用数组来实现栈,实现思路和方法都比较简单,就不多解释了,下面直接上代码:头文件:#ifndef STACKCURSOR_H_INCLUDED#define STACKCURSOR_H_INCLUDEDtypedef int ElementType;typedef struct StackRecord *Stack;int Isempty(Stack S);int IsFull(Sta

2016-10-23 16:05:11 548

原创 栈的链表实现(C语言版)

栈也是一种简单常用的数据结构,他的特点是先进先出。 现代化计算机将栈操作作为指令系统的一部分,栈也就有可能成为计算机科学中在数组之后最基本的数据结构。所以,栈的重要性就不用多说了。 其实现思路也比较简单,这里就不多解释了,直接看代码吧#include "Stack.h"#include <stdlib.h>struct Node{ ElementType Element; P

2016-10-22 09:21:38 393

原创 链表-游标实现(C语言版)

如果用C/C++写链表的话,用指针会比较方便,但很多语言都没有指针,那么怎么实现比较好呢?游标是个不错的选择。在用指针实现的链表中,有这样两个特点: 1.数据存在一组结构体中,并且每个结构体都有指向下一个结构体的指针。 2.一个新的结构体可以通过malloc获取内存,也可以用free来释放内存。游标法也得满足这两个条件。满足条件1比较简单,用一个全局的结构体数组就行了;满足条件2

2016-10-16 14:59:23 2319

原创 桶式排序(C语言版)

桶式排序是一种非常简单的排序方法,其过程不需要一次比较大小,对于非常稠密的数据,其效果会比较好。 具体思想从代码里面很容易看出,所以就不多说了#include <stdio.h>#define Maxn 10000int main(){ int Count[Maxn] = {0}; int N = 0; scanf("%d",&N); while(N--)

2016-10-11 22:13:56 449

原创 《自制编译器》中cbc在ubuntu64位上的简单用法

《自制编译器》这本书中虽然给出了在64位机器上使用cbc的一个办法,但感觉他的有点繁琐,下面给大家介绍个简单点的办法,我用的是ubuntu 16.04 64位版的,就以此为例吧首先下载64位版的cbc:cbc64位版推荐安装一下git,这样就可以直接在终端里面执行如下命令:git clone https://github.com/leungwensen/cbc-ubuntu-64bit.gitcd

2016-10-09 18:47:16 1419

原创 链表实践—多项式ADT(数组实现)

这个ADT可以存储多项式系数,并进行相加,相乘等计算。 这个是用数组实现的版本。头文件代码:#ifndef POLYNOMIAL_H_INCLUDED#define POLYNOMIAL_H_INCLUDED#define MaxDegree 100struct P{ int CoeffArray[MaxDegree + 1]; int HighPower;};type

2016-10-08 17:41:22 1794 1

原创 链表的简单实现(C语言版)

链表是一种简单的数据结构,其插入和删除的效率比较高链表定义(头文件):#ifndef NODE_H_INCLUDED#define NODE_H_INCLUDEDstruct Node;typedef struct Node * PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;typedef int ElementTy

2016-10-06 23:29:59 2789 3

原创 xmapp取消开机自动启动

win10上安装xampp后,发现一开机,apach和mysql服务就自动启动了 然而在xampp的设置里面找了下没有发现这个选项那么关闭自动启动的方法是: 点击这里的services,然后找到apach和MySQL 双击后会看到 把启动方式改一下就行,之前应该是automatic(自动) mysql服务的修改方法也是一样的

2016-10-01 13:48:35 1257 1

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-10-01 13:40:53 151

原创 Java FTP简单工具类

这几天刚好需要,而在网上找的例子又不能用,所以自己用FTP4j写了一个工具类,包括文件上传下载,文件夹上传下载,本人Linux服务器亲测成功。不多说直接放代码import it.sauronsoftware.ftp4j.*; import java.io.*;public class FTPCrud { private static String ip;//服务器地址

2015-08-13 20:35:29 344

空空如也

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

TA关注的人

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