03 2012 档案

各种排序算法的稳定性和时间复杂度小结
摘要:选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大多数情况下总是最好的。归并排序:log2(n)*n堆排序:log2(n)*n希尔排序:算法的复杂度为n的1.2次幂这里我没有给出行为的分析,因为这个很简单,我们直接来分析算法:首先我们考虑最理想的情况1.数组 阅读全文

posted @ 2012-03-30 22:23 linzuxin 阅读(165) 评论(0) 推荐(0)

[置顶] Mysql常见字符串处理函数
摘要:ASCII(str)返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。mysql> select ASCII(’2’); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII(’dx’); -> 100也可参见ORD()函数。ORD(str)如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCI 阅读全文

posted @ 2012-03-30 10:20 linzuxin 阅读(194) 评论(0) 推荐(0)

快速开启MySQL慢日志查询的方法
摘要:MySQL中使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句,对MySQL查询语句的监控、分析、优化起到非常大的帮助。AD:MySQL慢日志查询对于很多刚接触MySQL数据的新人来说比较陌生,下面就为您介绍MySQL慢日志查询的用法和好处,供您参考。mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的打开 my.ini ,找到 [mysqld] 在其下面添加long_query_time = 2log-slow-queries = D:/mysql/logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件#l 阅读全文

posted @ 2012-03-30 09:17 linzuxin 阅读(198) 评论(0) 推荐(0)

Mysql把一个表的记录导入到另外一张表
摘要:如果两个表结构完全一样的,用insert into table2 select * from table1 如果结构不一样或者你要指定字段,用insert into table2(字段1,字段2,字段) select 字段j,字段k,字段m from table1 阅读全文

posted @ 2012-03-28 20:52 linzuxin 阅读(133) 评论(0) 推荐(0)

Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
摘要:ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图 阅读全文

posted @ 2012-03-27 20:54 linzuxin 阅读(113) 评论(0) 推荐(0)

HashMap和Hashtable的区别
摘要:导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashta 阅读全文

posted @ 2012-03-27 20:49 linzuxin 阅读(137) 评论(0) 推荐(0)

JAVA高性能编程
摘要:1.这里比较一下ArrayList和LinkedList:ArrayList是基于数组,LinkedList基于链表实现。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。查找操作indexOf,lastIndexOf,contains等,两者差不多。这里只是理论上分析,事实上也不一定,比如ArrayList在末尾插入和删除数据就不设计到数据移动,不过还是有这么个建议:随机访问比较多的话一定要用ArrayList而不是Linked 阅读全文

posted @ 2012-03-27 20:10 linzuxin 阅读(198) 评论(0) 推荐(0)

ArrayList,LinkedList,Vector的关系和区别
摘要:一、同步性ArrayList,LinkedList是不同步的,而Vector是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度, 阅读全文

posted @ 2012-03-27 19:49 linzuxin 阅读(164) 评论(0) 推荐(0)

MySQL索引类型一览 让MySQL高效运行起来
摘要:索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATETABLEmytable( IDINTNOTNULL, usernameVARCHAR(16)NOTNULL); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如果在usernam 阅读全文

posted @ 2012-03-27 09:13 linzuxin 阅读(127) 评论(0) 推荐(0)

字符编码笔记:ASCII,Unicode和UTF-8
摘要:今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对 阅读全文

posted @ 2012-03-24 10:12 linzuxin 阅读(117) 评论(0) 推荐(0)

Mysql常见内置函数
摘要:算数运算子+, -, *, /除于 0 会等于 NULL。比较运算子任何东西跟 NULL 比较会等于 NULL。比较字符串通常不需要注意大小写,如果要比较大小写,用 BINARY 关键词。程序代码:SELECT *FROM departmentWHERE name = BINARY 'marketing';程序代码:= 相等!= 或 <> 不相等< 小于<= 小或等于> 大于>= 大或等于n BETWEENmin AND max 测试范围n IN (set) set 可以是一系列的数值或子查询。<=> 可以比较 NULL,如果比较 阅读全文

posted @ 2012-03-23 09:09 linzuxin 阅读(160) 评论(0) 推荐(0)

mongleDB 系统管理
摘要:最近完成了一个基于MongoDB的项目虽然项目已经上线,但是要使MongoDB长期健壮的运行在产品环境作为研发团队中的一员必须要对MongoDB的系统管理要有比较深入的了解。我准备用4-5个篇幅来介绍MongoDB系统管理--这是第1篇,接下来的操作如果没有特别说明都以CentOSLinux环境为准1.要尝试使用MongoDB首先必须要在命令行运行mongod服务a. cd MONGO_HOME/binb. ./mongod --dbpath /data/mongodb/db/--logpath /data/mongodb/logs/mongolog--logappend --fork参数说明 阅读全文

posted @ 2012-03-16 17:06 linzuxin 阅读(306) 评论(0) 推荐(0)

导航