- 博客(18)
- 收藏
- 关注
原创 【每天一个Linux命令】
这里写自定义目录标题匹配规则匹配控制输出控制行前缀控制行内容控制文件控制grep 命令 是在文件中查找匹配字符串,可以使用正则表达式。是我们分析数据非常重要的工具。最简单的使用# grep [OPTIONS] PATTERN [FILE...]grep "keyword" ./target_file作为一个老牌儿命令,grep的参数很多,我们就按man手册上的分类,梳理下这些参数。匹...
2018-11-25 12:46:39
582
原创 KMP之nextval推导
KMP字符串匹配算法的本质呢就是分析子串自身的特点来优化算法。第一个特点 前缀与后缀来自《算法导论》的一个实例 图a 文本 T , 与子串 P,已经匹配成功的q=5个字符,现在第六个字符匹配失败,要将子串P向前移动即 s 变大。s+1 的移动 显然失败,s+2的移动如下 图b 能成功匹配到k=3个字符,现在分析这两次匹配到的内容 图c 可以看出Pk 与 Pq的后三个字符相匹
2016-08-26 18:42:36
934
原创 php正则表达式的小点心
首先写一个简单的代码做测试$pattern = '/\bis\b/';$subject = "this is dog";if(preg_match_all($pattern, $subject,$matches)){ var_dump($matches);}else{ echo "false";}边界限制^ 与 $ 可以用来匹配 整个字符串的开始和结束边界 \b 匹配字
2016-08-18 23:51:29
540
原创 后缀表达式
对于一个算术表达式我们的一般写法是这样的 (3 + 4) × 5 - 6这中写法是中序表达式 而后序表达式则是将运算符放在操作数的后面,如 3 4 + 5 × 6 -可以看出后序表达式中没有括号, 只表达了计算的顺序, 而这个顺序恰好就是计算器中的一般计算顺序。运用后缀表达式进行计算的具体做法:建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需
2016-08-18 21:47:55
53656
12
原创 InnoDB 基本存储结构
InnoDB 基本存储结构页是InnoDB访问的最小单位,区是InnoDB空间申请的最小单位页页的默认大小为16KB,页头保存,表空间ID,页在表空间中的偏移量,页最后刷入磁盘的LSN;页的最后也有一个LSN,若两个LSN一致则说明页的写入时完整的。区64个连续的页组成一个区,大小1MB。区描述符(extent descriptor)用来控制区中的页,其中每个页的状态占两位。一个extent de
2016-07-07 17:34:22
630
原创 计数排序
排序算法的下界计数排序排序算法的下界在一般的排序算法中,都是通过比较,确定元素之间的关系而确定顺序, 只要是比较就只有三种情况, “<”、“=”、“>” 我们将“<”、“=”放在一起,则只剩下两种情况 “<=”、“>” 这样想我们就可以就排序过程看成是决策树这是一颗完全二叉树。
2016-03-18 16:23:13
394
原创 冒泡、归并和快速排序
冒泡排序归并排序快速排序冒泡排序这应该是初学者最熟悉的排序,就是 相邻两数比较,若逆序则交换。n - 1 趟之后数组有序。运行的过程上看,就像一个大泡泡逐渐浮出水面。冒泡的时间复杂度最好境况下,数组正序,比较一趟 , O(n) O(n) 最坏情况下,数组逆序,比较 ∑i=n2(i−1)=n(n−1)/2 \sum_{i=n}^2(i-1) = n(n-1)/2 次 时间复杂度
2016-03-18 11:43:48
657
原创 选择排序
简单选择排序堆排序简单选择排序原理非常简单 n 个元素的数组,i = 1,2,3,… 从 n-i+1 个元素中选出最大(小)的元素 与第 i个元素交换
2016-03-17 18:02:26
363
原创 插入排序
插入排序最基本的排序,很多书上的说法“就像我们平时打牌一样”,原理很简单 设 a 为一组牌 共 n 张,升序排列 (1)将第 i 张牌与前 i-1 张排好序的牌比较,(方向向前) (2)找到应在的位置 k (a[k] < a[i]),将 k + 1 至 i - 1 张牌向后挪一张。 (3)把第 i 张牌放入 位置 k+1这是我的代码public static void sor
2016-03-16 16:18:03
402
原创 编译安装lamp
编译安装lamp前几天买了阿里云上centos的服务器, 就在上面搭建了lamp. 是用ssh 连过去的,一点都没有图形页面, aliyun 提供的yum仓库里的版本不是很高, 所以整个过程都是编译安装的, 也受益匪浅, 特写此博客
2016-01-25 17:46:53
456
原创 InnoDB 插入缓存
InnoDB 插入缓存Insert Buffer (插入缓存),InnoDB储存引擎的关键特性之一。他并不是在内存中的缓存池的一部分,而是物理页的一部分,和一般的数据页一样。Insert Buffer的功能在InnoDB中,若主键(插入聚集索引Primary Key)自增,那么在页中存储时,会按主键顺序的存放,所以数据是集中的,大部分在一页中,这样会减少磁盘的离散读取,提高速度。 然而,当索引不唯
2015-09-25 11:19:00
2478
原创 异步图片上传
异步图片上传FormDataajaxxrhXMLHttpRequestUploadprogressFormDataFormData API利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,可以根据form元素直接创建formdata对象,这时formdata就包含了form中的信息var formdata = new FormData (form
2015-09-13 10:52:26
593
原创 html5 图片预览
html5 图片预览input file多文件上传FileReaderreadAsDataURLinput file在文件上传中使用 accept 属性。<input type="file" name="photos" id="photos" accept="image/gif, image/jpeg"><input type="file" name="photos" id="photos
2015-09-12 16:20:38
562
原创 iframe的操作
iframe主页面获得iframe的方法iframe获得主页面的方法1.主页面获得iframe的方法 <iframe name="myiframe" src="test.html">根据name获得,得到的是iframe的window对象console.log(myiframe);打印出来是 Window {top: Window, location: Location, docume
2015-09-12 10:07:56
443
原创 MySQL重做日志
MySQL重做日志故障的类型事物内部故障系统故障介质故障计算机病毒日志类型redo log(重做日志) 处理系统故障 undo log 处理事务故障 (回滚)重做日志用来实现事物的持久性,即事务ACID中的D。重做日志有两部分组成:一是内存中的重做日志缓存(redo log buffer)二是重做日志文件(redo log file)当事务commit时,必须将事务的全部
2015-08-04 23:03:46
2060
原创 MySQL 同步机制
MySQL 同步机制InnoDB没有使用操作系统同步机制,而是自己封装,通过spin(自旋)和wait array(等待队列)的设计提高性能test-and-set(TAS)指令spin lockmutex和自旋rw-lockwait arraytest-and-set(TAS)指令目前的CPU都支持TAS指令。该指令通过读取一个字节或者一个word,然后和0比较,并且无条件的将其在内存
2015-08-03 12:07:05
1357
原创 CSS3学习笔记-选择器
CSS3学习笔记-选择器一、基本选择器通过基本选择器可以确定HTML中大多数DOM元素节点 选择器 类型 功能 * 通配选择器 选择文档中的所有HTML元素 E 元素选择器 选择指定类型的HTML元素 id ID选择器 选择指定ID属性值为”id”的任意类型唯一元素 .class 类选择器 选择指定class属性值为”class”的任意类型多
2015-07-29 13:01:47
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人