自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 正则表达式

1. 正则表达式规则1.1 普通字符    字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。    举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程

2016-03-08 18:56:46 446

原创 JS正则表达式是否有字母数字特殊字符+strpos用法

JS:1   正则表达式 验证var auth_show_title=$("auth_show_title").val(); var re=new RegExp("[\x21-\x7e]+");             //   +至少出现一次len1=re.test(auth_show_title);var re=new RegExp("[A-Za-z0-9]+");le

2016-03-07 20:34:32 1736

原创 smarty小结(1)

tpl中:$smarty.get.name      =>_GET['name']$smarty.post.name   =>_POST['name']$smarty.const.NAME  =>define(NAME,"name"){foreach item=product key=productkey from=$arrProductList}产品名:{$product

2016-03-04 18:37:59 429

原创 json_encode中文乱码解决

$a='你好';echo json_encode($a);此时结果为:{"\uduiatsdiuas"};=>16进制(1)存时十六进制,解析成中文若是将中文json_encode后,解析数组回中文:解决:function decodeUnicode($str) { return preg_replace_callback('/\\\\u([0-9a-f]{4}

2016-03-03 18:55:25 13645 1

转载 parse()与stringify()

parse用于从一个字符串中解析出json对象,如var str = '{"name":"huangxiaojian","age":"23"}'结果:JSON.parse(str)Objectage: "23"name: "huangxiaojian"__proto__: Object注意:单引号写在{}外,每个属

2016-02-16 23:41:49 479

转载 e = e || window.event

e = e || window.event是我们在做事件处理时候区分IE和其他浏览器事件对象时常用的写法。但是这行兼容性代码有没有必要出现在所有的事件句柄中呢?标准事件调用方式需要这行代码吗?下边我们做详细讨论。  在讨论之前,如果有些忘记或者不熟悉事件对象的先参考其他资料,或者看看这个连接的资料http://wenku.baidu.com/view/400a89f4f61fb7360b4

2016-02-16 23:26:47 615

转载 PHP中htmlentities和htmlspecialchars的区别

这两个函数的功能都是转换字符为HTML字符编码,特别是url和代码字符串。防止字符标记被浏览器执行。使用中文时没什么区别,但htmlentities会格式化中文字符使得中文输入是乱码htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " 这几个特殊符号 <?php$str = "Bill & 'Steve'";echo html

2016-02-14 17:25:45 370

原创 Mysql Limit用法

Mysql Limit用法:   mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15    //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.   //如果只给定一

2016-01-29 14:54:54 526

原创 curl(3) 打开邮箱 获取内容

打开邮箱 获取指定内容中的链接  进入链接$handle=imag_open(服务器,用户名,密码);imag_search($handle,条件);//返回数组imag_body($handle,信件num,flag);//返回读取的内容array_pop($arr);//将数组中最后一个去掉,返回剩下的数组

2016-01-28 18:15:15 1107

原创 CRUL(2) 从网页获取数据

从网页获取数据public function actionGetList(){ //要获取数据的网站 $url="http://www.sian.com"; $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,1); cu

2016-01-28 18:14:34 357

原创 curl(1) 发送数据

1      发送邮箱到网页    邮箱对应网页的name='email'git@code.csdn.net:snippets/1568693.git2        从网页获取数据git@code.csdn.net:snippets/1568767.git3        打开邮箱 获取指定内容中的链接  进入链接$handle=imag_open(服务器,用户名

2016-01-28 18:07:48 369

转载 <a href=”#”>与 <a href=”javascript:void(0)” 的区别

中的“#”其实是锚点的意思,默认为#top,所以当页面比较长的时候,使用这种方式会让页面刷新到页首(页面的最上部)javascript:void(0)其实是一个死链接,当使用超链接处理JS脚本(一般是click),又不想回到页首(这种情况可以理解为局部刷新)时经常使用void 操作符的用法格式如下:1. javascript:void (expression_r_r

2016-01-26 14:43:09 332

原创 关于图片链接的操作

1PC端(1)function showBuyAndGive(){openDialog("#actBuyAndGive");//ID=actBuyAndFGive}(2)(3)$(document).ready(function(){ $('.tuiguang-demo').click(function(){

2016-01-16 17:15:30 488

转载 海量数据处理问题

第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多

2015-11-21 22:53:36 273

转载 堆排序

堆排序过程堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。既然是堆排序,自然需要先建立一个堆,而建堆的核心内容是调整堆,使二叉树满足堆的定义(每个节点的值都不大于其父节点的值)。调堆的过程应该从最后一个非叶子节点开始,假设

2015-11-21 22:48:45 258

转载 白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇

在我的博客对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法进行了详细的讲解,并做成了电子书以供大家下载。下载地址为:http://download.csdn.net/detail/morewindows/4443208。       有网友提议到这本《MoreWindows白话经典算法之七大排序》电子书讲解细致用来平时学习是非常好的,但是页数

2015-11-21 22:45:10 373

转载 白话经典算法系列之六 快速排序 快速搞定

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速

2015-11-21 22:44:10 319

转载 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现

直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1.      初始时,数组全为无序区为a[0..n-1]。令i=02.      在无序区a[i…n-1]中选取一个最小的元素,将其

2015-11-21 22:43:04 286

转载 白话经典算法系列之五 归并排序的实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy

2015-11-21 22:41:45 324

转载 白话经典算法系列之三 希尔排序的实现

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因

2015-11-21 22:39:22 249

转载 白话经典算法系列之二 直接插入排序的三种实现

直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1.      初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12.      将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。3.      

2015-11-21 22:37:39 248

转载 白话经典算法系列之一 冒泡排序的三种实现

冒泡排序是非常容易理解和实现,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码://冒泡排序1void BubbleSort

2015-11-21 22:35:56 311

原创 腾讯面经

预面:笔试过了后 深圳那面打电话先来来了个预面试,真是醉了,,1   fork里malloc 释放内存,释放几次 2  进程线程 内存分布   说的线程的,然后进程的内存分布当时以为他要问高端内存,那块了解不多说不会,之后才反应过来他问的应该是栈堆bbs那些,,乱了,心塞,,,3   fopen open区别4   查看CPU的命令5   si ni 什么意思6   进

2015-10-06 17:35:27 586

转载 多线程访问同一变量是否需要加锁

对于多线程访问同一变量是否需要加锁的问题,先前大家都讨论过。今天用代码验证了一下之前的猜想:32位CPU与内存的最小交换数据为4字节/次,这也是结构体要对齐4字节的原因。在物理上,CPU对于同一4字节的内存单元,不可能写2个字节的同时,又读了3字节。测试环境为:XEON 2CPU*2Windows7采用50,50,50线程交叉读写,试验代码如下:C/C+

2015-09-08 21:49:06 10151 1

转载 函数调用栈

当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地址当成返回地址压入栈中(这个压栈操作隐含在call指令中);3、在被调函数中,被调函数会先保存调用者函数的栈底地址(push ebp),

2015-09-07 19:06:01 331

原创 美团笔试题:k链表翻转

1234567891011121314151617181920212223242526272829303132333435

2015-09-07 11:02:26 360

转载 M进制字符串转为N进制字符串

\param dest 转换完毕的n进制字符串\param n 目的进制数(十六进制填16、二进制填2等)\param src 初始m进制字符串\param m 初始进制数,与目的进制数表示方法相同\warning 初始m进制字符以10进制表示若超过int表示范围,结果未定义;且转换为n进制需要的字符个数未知。*/void m2n(char *dest, unsigned

2015-09-05 21:17:28 490

转载 Makefile自动依赖

Makefile自动依赖 Makefile生成自动依赖的方法有两种:1.  将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件2.  每个.c文件对应一个.d文件,将依赖关系写入.d文件中  一、对于第一种方法,Makefile的写法如下:#file startCC = gccSRCS := $(wildcard *.c)OBJS

2015-09-05 19:45:56 454

转载 用gdb调试core dump文件

写C/C++程序经常要直接和内存打交道,一不小心就会造成程序执行时产生Segment Fault而挂掉。一般这种情况都是因为数组越界访问,空指针或是野指针读写造成的。程序小的话还比较好办,对着源代码仔细检查就能解决。但是对于代码量 较大的程序,里边包含N多函数调用,N多数组指针访问,这时想定位问题就不是很容易了(此时牛人依然可以通过在适当位置打printf加二分查找的方式迅 速定位:P)。懒人的话

2015-09-05 18:56:44 581

转载 腾讯面试(三)

第三次来到这里了,前两次的腾讯实习生面试都是一面就挂了。今天的运气也不怎么好,估计又挂在一面了。闲话少叙,面试题记录如下:1.自我介绍加介绍项目答:blablabla.... 2.core文件是什么,有什么用?答:程序崩溃以后,会把最后的栈信息存在core文件里,方便程序员了解程序崩溃前最后的栈信息。追问:如果程序core了,但没产生core问价,是

2015-09-05 17:47:53 378

转载 CAS lockfree 循环队列

在写网络爬虫时涉及到多线程并行处理URL的问题, 开始打算给相关数据加锁来解决该问题, 之后考虑到锁是会影响性能的, 虽然处理URL的那部分不是这种小型爬虫的瓶颈所在(网速才 是最大的瓶颈啊), 但能更快一点岂不更好? 所以就想使用无锁技术.通过查阅资料, 参考陈皓老师的无锁队列的实现 和淘宝搜索技术博客的一种高效无锁内存队列的实现, 使用CAS(compare and swap, 比

2015-09-05 17:47:08 607

转载 Linux内核之文件系统

作者:harvey wang 邮箱:harvey.perfect@gmail.com   本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文章实在太精彩了。最后还是鼓足勇气决定把

2015-09-05 16:56:40 391

转载 操作系统为什么要分用户态和内核态

在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING

2015-09-05 15:34:40 21110 2

转载 linux的内存映射

零:32位操作系统只有4G的虚拟地址空间,linux将最上的1G用于内核虚拟地址。一:linux将物理内存完全一一映射到内核空间,这样很方便管理内存,任何页面的虚拟地址减去一个0xc0000000的偏移就可以得到物理地址。二:内核还需要动态管理一些内存用于vmalloc或者设备临时映射等,因此不能将1G的虚拟空间完全一一映射物理内存,因此权衡了一个896M的大小,0xc0000000到0x

2015-09-05 14:40:51 483

转载 B树、B-树、B+树、B*树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关

2015-09-05 10:07:46 272

转载 linux的管道和命名管道

1.管道pipeint pipe( int fd[2] );返回值:成功,返回0,否则返回-1。参数数组包含pipe使用的两个文件的描述符。fd[0]:读管道,fd[1]:写管道。必须在fork()中调用pipe(),否则子进程不会继承文件描述符。两个进程不共享祖先进程,就不能使用pipe。但是可以使用命名管道。[cpp] view

2015-09-05 09:47:01 440

转载 TCP的流量控制

TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(

2015-09-04 19:38:59 428

转载 腾讯面试(一)

就在两个小时前,结束了腾讯的二面,面试完没多久就从wechat上查到二面被刷!心里久久不能平静,又反复查了好几遍,确认,嗯,的确无缘了。一切那么的近,却又转瞬间化为乌有了。原谅我是一个文艺的程序员,不喜勿喷。应班花和标哥的面经要求,写在这里也算是作为自己的一个总结和回顾。BAT是计算机及软件同学的理想入职公司,而鹅场在广深是更受青睐的。本人985本科一枚

2015-09-04 18:50:35 604

转载 腾讯面试(二)

一面一面是第一天的早上九点,记得那天很早就起床了,和同学一起去的酒店,本以为我们已经算来的早的了,到了酒店才发现整个大会议厅都是人。然后就是排队签到,没等几分钟就叫到我去一面了...一面面试官貌似一直在等我,可能我是他第一个面试的。我一进去就叫我把简历给他,然后让我自我介绍了下,不到一分钟就介绍完了(主要自己觉得没什么好介绍的),这时面试官还在看我的简历。等了一会,面试官开始问我简

2015-09-04 18:49:27 524

转载 C++堆栈的比较

基础知识: 堆 栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称 为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器(堆 栈指针,Stack Pointer)存放当前线程的栈顶指针,EBP寄存器(基址指针,Ba

2015-09-04 16:45:40 460

空空如也

空空如也

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

TA关注的人

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