自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Redis应用场景

1.取最新N个数据的操作比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取使用LPUSH latest.comments命令,向list集合中插入数据 插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存最近5000个ID然后我们在客户端获取某一页评论时可以用下

2014-01-21 10:10:40 394

原创 C语言学习第六天(存储类型、宏)

register:一般情况下不会使用到。这个存储类型的意思是:优先将这个类型的变量存放在CPU的寄存器里,需要用时直接从寄存器里拿。寄存器的速度比内存快很多。#include main(){ int a = 5,i; for(i=1;i<=a;i++) { printf("%d",jic(i)); } return 0

2013-05-17 11:47:01 552

转载 redis 帮助文档

phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct构造函数$redis = new

2013-05-15 17:23:31 866

转载 单点登录 共享COOKIE

单点登录的技术实现机制:当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用

2013-05-15 11:44:52 883

原创 Smarty实现原理分析

现在我们来做个建议的模版引擎先建一个MySmarty类<?phpclass MySmarty{ public $config = array( 'template_dir' =>'./template', 'compile_dir' =>'./compile', ); public $arr = a

2013-05-15 11:44:12 904

原创 C语言学习第十七天(文件操作)

连续忙了几天都没更新。现在重新开始学习。下面学习的是C语言的文件操作。C语言把文件看作是一个字符的序列,即由一个一个字符(字节)的数据顺序组成,分为ASCII和2进制文件。ASCII文件即文本文件(TEXT),2进制文件是把内存中的数据按其在内存中存储形式原样输出到磁盘上存放。由上所述,一个C文件是一个字节流或2进制流。它把数据看作是一连串的字符而不考虑记录的界限。

2013-05-15 11:44:01 598

原创 C语言学习第十六天(回顾)

定义一个有年月日的结构体算出他是当年第几天:#includestruct date{ int year; int mouth; int day;}today={2005,2,7};main(){ int i,j,k=0; int c[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}, d

2013-05-15 11:43:52 440

原创 C语言学习第十五天(共用体、枚举)

使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。共用体定义:union 共用体名{   成员表名}变量表名例:/*先声明类型再定义*/union student{ int num; char name; f

2013-05-15 11:43:39 604

原创 C语言学习第十四天(练习)

一个链表的练习:#include #include #include #define LEN sizeof(struct student)struct student{ int num; char name[20]; float score; struct student *next;}; main(){

2013-05-15 11:43:29 456

原创 C语言学习第十三天下午(链表)

链表是常见的数据结构。他是动态的存储分配的一种结构。      链表有一个"指针头"变量,以head表示,它存放一个地址,该地址指向一个元素。链表中每一个元素称为"结点"。   每个节点分为两个部分:一为用户需要用的实际数据,二为下一个结点的地址。   因此可以看出上图head指向第一个元素,第一个元素又指向第二个元素,直到最后一个元素,它不指向任何元素,称为"表尾"。

2013-05-15 11:43:15 714

原创 C语言学习第十三天上午(结构体)

基本类型的变量(如整型、实型、字符型变量等)、同事也有构造类型数组(数组中各个元素类型相同);但有时需要不同的数据类型组合成一个整体,以便引用。   结构体的定义:   struct 结构体名   {       成员类型名 成员名;       };   可将成员列表称之为域表,每个成员也称为结构体中的一个域。/*定义结构体*/struct st

2013-05-15 11:43:00 548

原创 C语言学习第十三天(练习)

输入10个数,最小的和第一个交换 最大的和最后一个交换,写3个函数:1.输入 2.处理 3.输出先以数组为参数进行处理:#include #define N 5 void input(int num[]){ int i; for(i=0;i<N;i++) { scanf("%d",&num[i]);

2013-05-15 11:42:43 503

原创 归并排序

今天突然想起以前面试的时候一个题目,题目大概是有两个排完序的数组,将他们组成新数组然后进行排序。以前不懂什么算法,现在知道原来考的是归并排序,以前自己做的思路是合并两数组然后进行冒泡排序(只会冒泡...)。做完之后以为自己做到不错 后来被PASS了,现在回头一想,才发现自己以前对算法的薄弱。现在看了资料后重新写一次。

2013-05-15 11:42:10 387

原创 C语言学习第十二天(指针总结)

定义                含义                       int i               定义整型变量i                       int *p              p为指向整型数据的指针变量                       int a[n]            定义整型数组a,它有n个变量

2013-05-14 15:46:03 594

原创 C语言学习第十一天(重要:C的灵魂)

指向指针的指针:类型 * * 指针变量名#include main(){ char * name[] = {"zhangsan","lisi","wangwu"}; char **p; int i ; for(i=0;i<3;i++) { p= name+i; printf("%s\n",*p); }

2013-05-14 15:45:33 428

原创 C语言学习第十天(重要:C的灵魂)

字符串的指针和指向字符串的指针变量:先以值的方式覆盖#include main() { char str[] = "abcdefg"; char str2[20]; int i; for(i=0;*(str+i)!='';i++) { *(str2+i)

2013-05-14 15:42:35 564

原创 C语言学习第九天(重要:C的灵魂)

2.以指针变量做参数#include "stdio.h"#define NUM 5int main(){ int i,arr[NUM]={2,4,8,5,6}; for(i=0;i<NUM;i++) { printf("%d",arr[i]); } printf(""); change(arr);

2013-05-14 15:39:01 495

原创 Socket与SMTP交互

S: 220 smtp.example.com ESMTP PostfixC: HELO relay.example.orgS: 250 Hello relay.example.org, I am glad to meet youC: MAIL FROM:S: 250 OkC: RCPT TO:S: 250 OkC: RCPT TO:S: 250 OkC: DATAS:

2013-05-14 15:36:14 787

原创 C语言学习第八天(重要:C的灵魂)

正确而灵活的运用指针可以有效的表达复杂的数据结构;能动态分配内存;能方便的使用字符串、数组。在调用函数的时候能获得多余1个的值,能直接处理内存地址等。可以说不掌握指针就没掌握C的精华!变量的指针就是变量的地址,存放变量地址的变量是指针变量,用来指向另一个变量指针变量的定义:基本类型  *指针变量名   如:float  * point_3   指向浮点变量的指针

2013-05-14 15:35:38 606

原创 C语言学习第七天(宏)

文件包含#include #include "file.h"区别在于:尖括号存放在C库头文件所在目录中寻找要包含的文件,称为标准方式        引号是先在用户当前目录寻找须要包含的文件,找不到再按标准方式查找要合理的导包以节省查找时间条件编译#ifdef   标识符        程序段1#else            程序段2#end

2013-05-14 15:34:25 418

原创 C/C++ C语言学习第六天(存储类型、宏)

register:一般情况下不会使用到。这个存储类型的意思是:优先将这个类型的变量存放在CPU的寄存器里,需要用时直接从寄存器里拿。寄存器的速度比内存快很多。#include main(){ int a = 5,i; for(i=1;i<=a;i++) { printf("%d",jic(i)); } return 0;}

2013-05-14 15:33:25 95

原创 选择排序

n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初始状态:无序区为R[1..n],有序区为空。②第1趟排序在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。……③第i趟排序第i趟排序开始时,当前有序区和无序区分别为R

2013-05-14 15:31:56 406

原创 C语言学习第五天(函数、存储类型)

C语言函数的原型:函数类型函数名 (参数类型参数名)使用函数前必须事先声明:函数类型 函数名 参数类型以便在遇到函数调用是编译系统正确识别函数并检查函数类型,如果函数出现在主调函数之前也可不必声明。函数的递归调用:/** * 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比 * 第3个人大2岁。问第三个人,又说比第2人大两岁。问第

2013-05-14 15:30:56 413

原创 二分查找 (折半查找)

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以

2013-05-14 15:29:51 475

原创 C语言学习第四天下午(数组)

C中的数组和其他语言里面的数组大同小异。不过多阐述太多基础。先看一个简单的一维数组例子:经典的冒泡排序#includeint main(){int array[10]={1,10,4,27,2,5,8,39,0,18};int i,j,a; for(i=0;i<=8;i++) for(j=0;j<=8-i;j++) if(array[j]<array[j+1]

2013-05-14 15:29:16 363

原创 辗转相除法

原理:设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用b除a,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止。其最后一个非零除数即为(a,b)。#include unsigned

2013-05-14 15:27:49 403

原创 C语言学习第四天上午(练习)

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。#include "stdio.h" main(){ int n,t,number=20; float s=0,a=2,b=1; for(n=1;n<=number;n++) { s=s+a/b;

2013-05-14 15:27:21 407

原创 C语言学习第三天(练习)

输入一个不多于5位正整数要求:   求出它是几位数;   分别打印出每一位数字;   按逆序输出各位数字;#includeint main(){ //输入数字 int n; printf("print num:"); scanf("%d",&n); if(n>9999) printf("5位");

2013-05-14 15:26:34 504

原创 筛法

具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。 OK现在用C来诠释筛法。

2013-05-14 15:25:37 485

原创 C/C++ C语言学习第二天下午(变量)

#include int str=22; int main(void) { //调用 外部变量要说明 (除非变量定义在源文件开始出) extern int str; printf("%d",str); }只读变量:C语言中的常量跟用const关键字声明的变量比较容易混淆,使用co

2013-05-14 15:24:50 398

原创 C语言学习第二天上午(输入输出)

先来个输入与输出练练手~~# include main(){ /* EOF ,是文件结束标识, getchar()函数在没有输入时返回一个特殊值这个特殊值不能与任何实际字符相混淆。 这个值叫做E O Fend of file文件结束。

2013-05-14 15:24:08 432

原创 C/C++ C语言学习第一天(配置)

学习使用 Code::Blocks编辑器新建 File-> New -> Empty FileOK,准备工作完毕 开始撸码/* 包含标准库 */# include /* 主入口函数 不接受任何参数 */main(){ printf("hello word!");

2013-05-14 15:21:42 412

原创 算法之约瑟夫环

#include #include typedef struct person{ int num; struct person *next;}lists; void PerServive(int n,int k,int m){ lists *head,*p,*r; int i; head=NULL; for(i=1;i<=n;i++)

2013-05-14 15:16:55 760

原创 快速排序

$list = array(3,2,1,4,7,6,5);function fast($arr){ $num = count ($arr); if($num<=1) { return $arr; } $key = $arr[0]; $left = $right = array(); for($i=1;$i<$num;$i++) { if($arr[$i]<$key)

2013-04-28 10:44:04 351

原创 代码补全

有时在设计数据库内容字段时需要存入样式表而当截取字符串时往往会截取掉样式使标签未闭合,今天查阅资料发现用TIDY扩展能够有效的解决这种问题。通常在设计全站缓存时在写入缓存是再多进行一次下面的操作:$content = tidy_repair_file('demo.html');file_put_contents('demo.html',$content);这样就自动补全样式

2013-04-26 13:39:08 425

原创 单例模式

<?phpclass db { public $host = '127.0.0.1'; public $user = 'root'; public $upwd = ''; public $data='myblog'; public static $db; public $sql; private function __construct(){ mysql_conn

2013-04-24 13:26:19 396

空空如也

空空如也

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

TA关注的人

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