`
dsea
  • 浏览: 43882 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
CC=gcc CFLAGS=-g -Wall #OBJPATH=./build SOURCES=$(wildcard *.c ./core/*.c) OBJECTS=$(addprefix ./, $(addsuffix .o, $(basename $(SOURCES)))) TARGET=ds all: $(TARGET) $(TARGET) : $(OBJECTS) $(CC) $(CFLAGS) -o $@ $(OBJECTS) -lpthread %.o : %.c $(CC) $(CFLAGS) -o $@ -c $< clean ...
在算法精解这本书上看到一个字符串哈希处理函数,知其然不知其所以然,仅记下以作备用     unsigned int hash(const void* key) { const char* ptr; unsigned int val; val = 0; ptr = key; while(*ptr != '\0') { unsigned int tmp; val = (val << 4) + (*ptr); if(tmp = (val & 0xf0000000)) { val = val ^ (tmp & ...
链表是一些包含数据的独立数据结构的集合,链表中的每一个节点通过链或者指针连接在一起。程序通过指针访问链表中的节点。链表一般分为单链表和双链表。   1.单链表   单链表中,每个节点包含指向下一个节点的指针。链表最有一个节点的指针字段值为NULL,表明链表后面不再有其它节点。下面是一张单链表的图:   对应的数据结构为:   typedef struct NODE { int value; struct NODE *next; }Node;   2.双链表   在一个双链表中,每个节点都包含两个指针——指向前一个节点的指针和指向后一个节点的指针 ...
本来mysql运行得好好的,修改了一次root密码,貌似没成功,当时也没在意,mysql也没出问题。到了第二天,启动时报了这个错误“access denied for user 'root'@'localhost' using password yes”。网上解决的方法很多,试了几个都不行,下面就 ...
      fedora 15默认安装了openJDK,关于openJDK可以参见http://openjdk.java.net/和http://zh.wikipedia.org/wiki/OpenJDK。接下来安装jdk1.7,下载地址http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.rpm。        1.下载完成后安装 [root@localhost ~]# rpm -ivh jdk-7-linux-i586.rpm      -ivh表示可以显示详细的安装进度。        2. 安装完成后 ...
      安装windows和fedora 15双系统之后,起初一切正常,grub引导加载程序可以选择进入相应的系统。后来系统更新之后多了一个选项,即多了一个linux内核版本可以选择,很多时候,我们并用不到,如何删除呢?      rpm -qa | grep kernel 命令可以查看所有的内核版本,uname -r 可以查看当前使用的版本内核。      yum remove kernel-(版本号) 可以删除内核,该操作可以自动更新grub。      Fedora 默认只保留三个内核,编辑 /etc/yum.conf ,修改 installonly_limit 的值可以设置这个 ...
最近在做一个项目的过程中,有个地方用到了<button>标签,结果出现了一个很奇怪的问题,form的内容被提交了两次,只针对IE浏览器,chrome不会。由于使用了boss的一个框架,一度使我怀疑是不是他那框架存在兼容性问题,不过找了好久最终还是找到了答案。原因就在于button标签的使用。 "在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处.<button> 控件 与 <input type="button"> 相比,提供了更为强大的功能和更丰富的内容。 ...
最近看深入理解计算机系统这本书时,在第二章有个练习题,在不生成中间变量的情况下,交换两个数。代码如下:     void swap(int *x, int *y) { *y = *x ^ *y; /*Step 1*/ *x = *x ^ *y; /*Step 2*/ *y = *x ^ *y; /*Step 3*/ }     这个过程的效果是交换指针变量x和y所指向的存储位置处存放的值。这与通常的交换两个数值的方法不一样,当移动一个值时,我们不需要第三个位置来临时存储另一个值。不过,书上说这种方式并没有性能上的优势,这个就不太清楚了,按理说 ...
      最近看到一篇文章,原文出处:http://coolshell.cn/articles/1391.html 。题目很简单,反转一个整数的符号,比如把1转成-1。看起来这是一个十分“弱智的”问题,不就是n=-n就可以了么。不过答案可不止这么一个,很多强人还给出了其他一些匪夷所思的答案。本人菜鸟,只能对所给出的部分答案做出分析,加深理解,不能造车,只能依葫芦画瓢了。   方法一: int x = numberToInvertSign; boolean pos = x > 0; for (int i = 0; i < 2 * Math.abs(x); i+ ...
关于kindeditor和struts的图片上传,网上有很多方法,但很多都很复杂,比如通过Action处理,还要修改配置文件等,关键是还让人看的一头雾水。现在介绍一种简单的方法,只要添加一个jsp页面,和修改部分页面代码就行了(此方法结合网上的部分代码,dsea总结,并非原创!)。   1.项目中加入kindeditor,这一步大家应该都很清楚,就不累述了。   2.添加jar包支持,需要commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、json_simple-1.1.jar。kindeditor的lib目录下有这三个jar文件。   ...

数学之美

偶然在网上看到这样一张图片,深感与数学的奇妙,不知道这叫什么三角。闲来无事,用java实现了一下,难度不大。     以下为代码,没啥难度,由于打印时是首字母对齐,为了实现上述效果,用空格填充了一部分区域。     package ex; public class Triangle { private static int print(int n) { int num = 1; for (int i = 1; i < n; i++) { if (i == 1) { num = i; } else { num = ...
快速排序:        先选择表中的一个元素作为划分元素.接下来,对表进行划分,小于划分元素的所有元素放到划分元素的左侧,大于划分元素的所有元素放大它的右侧.最后,再用这种策略对两个划分的字段进行排序. public static void quickSort (Comparable[] data, int min, int max) { int pivot; if (min < max){ pivot = partition(data, min, max); quickSort(data, min, pivot-1); quickSort( ...
冒泡排序:扫描整个表,比较相邻元素,如果它们的相互次序不正确就交换它们.执行的结果是将最大值"起泡"到表中的最后位置,这也正是它在有序表中的最后位置.然后再次扫描表,将第二个最大值起泡到最终位置.继续这个过程,直到所有的元素都排序正确. public static void bubbleSort(Comparable[] data) { int position, scan; for(position = data.length-1; position >= 0 ; position--) { for(scan = 0; scan <= pos ...
        如何决定哪些方法或是变量该声明为静态的,往往是设计类时应该考虑的一个重要步骤.下面简单讨论一下静态变量和方法. 静态变量         主要由两类变量,在方法内声明的局部变量和在类中声明但不位于方法内的实例变量(也可称为全局变量).这里使用术语实例变量,是因为每个类都有自己的变量值,对不同的对象分配不同的内存空间,每个对象中这个变量的值都可以不同.         静态变量,也称为类变量,它由类的所有实例共享,即不同的对象共享一个数据域.在一个对象中修改了静态变量的值,就等于修改了其他所有对象中该静态变量的值.用static修饰符来声明一个静态变量.如:     privat ...
Global site tag (gtag.js) - Google Analytics