- 博客(31)
- 收藏
- 关注
原创 数据结构&算法学习
我认为学习算法和数据结构一定要根据具体的需求还学习才能掌握的更加好,所以我把自己复习数据结构&算法的内容总结成博客记录在这个子分类下。每个算法均已用C程序实现(GCC编译),并且提供源程序的下载链接。如果有错误的地方希望大家给出指导,谢谢。目录:1. Manacher算法:http://blog.csdn.net/adrastos/article/details/9093779
2013-06-15 08:52:47 1329
原创 Derby使用3—Embedded模式
零、回顾这部分先来回顾一下上两篇博客中的主要内容。第一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式。第二篇文章主要介绍了客户机-服务器(C/S)模式的使用。今天继续介绍第二种使用模式,内嵌模式(Embedded Mode)。一、客户端使用内嵌模式与之前介绍的C/S模式不同,使用内嵌模式时不需要开启一个数据库的服务进程来监听并处理客户端的请求,客户端可
2013-08-13 00:08:27 2834 1
原创 Derby使用2—C/S模式
零、回顾这部分先来回顾一下上一篇博客中的主要内容。上一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式。这篇文章主要介绍这两种模式中的一种模式一、启动服务端程序第一部分主要来启动Derby数据库的服务端程序来接收客户端过来的请求。启动服务端程序有两种情况,一种是本机作为服务端,一种是远程的某台主机作为服务端程序。下面将对这两种情况分别介绍。(说明,我使用
2013-08-11 21:03:45 1820 4
原创 Derby使用1—初识
一、Derby数据库的简介先来简单介绍一下什么是Derby数据库。Apache Derby是Apache软件基金会所研发的开放源码数据库管理系统。该数据库完全用Java编写,所以Derby可以很好的实现跨平台可以在任何存在合适的 Java 虚拟机(JVM)的地方运行。Derby可以在三个Java平台的任何一个上运行:Java 2 Platform, Micro Edition (J2ME)
2013-08-11 11:03:18 1608
原创 排序-冒泡排序
零、数据结构和算法系列目录数据结构和算法系列目录(不断更新):http://blog.csdn.net/adrastos/article/details/9093857一、冒泡排序简介先来介绍一下什么是冒泡排序。大家肯定注意过水泡在水中的形成过程,形成是轻气泡不能在重气泡下面,也就是说在扫描带排序数组的时候,从后往前扫面,当遇到“轻”元素时在“重”元素下面时,交换两者的
2013-07-11 18:03:39 990
原创 排序-归并排序
零、数据结构和算法系列目录数据结构和算法系列目录(不断更新):http://blog.csdn.net/adrastos/article/details/9093857一、归并排序简介归并排序和插入排序一样,其核心是基于比较的,所以也是比较排序中的一种。归并排序运用的分治算法的思想。在介绍归并排序的同时也简单的介绍一下分治算法,这种算法的核心讲解会在后续的博客中介绍。回
2013-07-07 21:47:18 1579
原创 排序-插入排序
零、数据结构和算法系列目录数据结构和算法系列目录(不断更新):http://blog.csdn.net/adrastos/article/details/9093857一、插入排序简介插入排序是比较简单也比较直接的一种排序算法。对于少量元素待排序数据较为有效。插入排序就像安身高排队,有一个人指挥排队从第二个人开始,按身高把当前的人安插到之前排序好的队列的合适位置。插入排
2013-07-05 18:55:19 1271
原创 排序-计数排序
零、数据结构和算法系列目录数据结构和算法系列目录(不断更新):http://blog.csdn.net/adrastos/article/details/9093857一、计数排序简介计数排序是一种线性时间的排序,它的时间复杂程度为O(n),虽然是线性的时间复杂程度,但是它的空间复杂程度比较高,而且用之前需要有一个硬性的前提。这个前提在后面给出,这里先来简单介绍一下计数
2013-07-04 23:25:33 1435
原创 Bitmap的一个简单实现
一、Bitmap简介Bitmap是一种常用的数据结构,其实就是一个连续的数组,主要是用于映射关系,如映射整数,一位代表一个数,即这里假设Bitmap有100Bytes * 8 这么多的位,那么这里可以映射出来0~799,虽然大于799的数也能够映射,但是在查找时就不能确定该位是某数还是某数加800。为什么会设计这个数据结构,因为在映射大量数据时,这个数据结构可以很好的节省空间,并且有较高的
2013-07-02 21:54:08 1110
原创 最大和连续子串
一、问题描述输入一组整数,求出这个整数数组最大和的连续子串。例如,整数数组为{4, -2, 59, -45, 4},最大和的连续子串为{4, -2, 59},最大和为61。需要注意的是要求子串连续,另外,子串的长度可以是1.这个也是曾经出过的一道面试提,最早是浙大的一道考研算法设计题。二、问题分析第一种方法。最简单的思路就是用两层循环来解决问题。外面一层是从1到整数数组
2013-06-15 08:52:19 1230
原创 求数组中除第i个外的所有其他数组元素的乘积
一、问题描述输入一个数组source_numbers,现在求一个target_numbers,target_numbers满足下面的关系式:要求:不能够使用除法。举个例子,比如source_numbers={1, 2, 3, 4, 5};则求出的target_numbers = {120, 60, 40, 30, 24}。这是Google曾经的一道面试题
2013-06-14 13:02:57 2247
原创 寻找丑数及关于程序优化效率的一点说明
一、问题描述如果一个整数值含有因数2,3,5(包括1和该整数本身)的整数称为丑数(Ugly Number)。换句话说丑数ugly_number是可以表示成形如下面表达式的形式,表达式中的i,j,k均是大于等于0的整数。举个例子,18 = 2 * 3 * 3,所以18是一个丑数。而14 = 2 * 7,所以14不是一个丑数。现在有个需求就是要找到第2013个丑数。
2013-06-14 13:01:40 1010
原创 杨氏矩阵查找
一、问题描述给定一个二维数组,如果这个二维数组满足下面两个条件则称为杨氏矩阵。1. 在这个二维数组的每一行都按照从左到右的顺序递增。2. 在这个二维数组的每一列都按照从上到下的顺序递增。现在需要完成以下的一个功能:输入这样的一个二维数组,并且给定一个要查找的数,判断该数是否存在在这个二维数组中。二、问题分析这里不讲述遍历这个二维数组来查找该数(时间复杂程
2013-06-14 13:00:29 908
原创 最大乘积连续子串
一、问题描述输入一组浮点数,求出这个浮点数组最大乘积的连续子串。举个例子,浮点数组为str[]={-3,-5,0,-1,-2,-2},这时得出来的结果是前两个浮点数的乘积,即15。需要注意的是,这个子串是要求连续的,另外,子串的长度可以为1.二、问题分析这里给出两种思路,后续可能还会加入新的思路。第一种是直接求解。即用双层循环。外面一层是从1到浮点数组的长度,里面的那层
2013-06-14 12:58:40 1153 1
原创 Manacher算法
一、问题描述现给定一个已知的字符串str[],现在想要在O(n)的时间复杂度之内求出一个最长的回文子字符串(正着和倒着顺序读一致)。Manacher最早发现了可以用O(n)的时间复杂度来解决该问题,所以这种方法称之为Manacher算法。二、符号说明回文串包括奇数长的和偶数长的,一般求的时候都要分情况讨论,Manacher的这个算法做了个简单的处理,把奇偶情况统一了,为
2013-06-14 12:55:42 2583 3
原创 用Eclipse追PostgreSQL源码
本篇主要讲述了怎么用Eclipse追PostgreSQL源码的过程。使用的Eclipse版本是Juno Service Release 2,PG的版本是postgresql 9.2.2。首先第一步就是要安装编译好的PostgreSQL(见Eclipse编译PostgreSQL 9.2.2)。在Eclipse上打开Make Target 视图(Window->Show View->Oth
2013-06-14 12:51:47 1845 1
原创 Eclipse编译PostgreSQL 9.2.2
前面介绍了VS2010编译PostgreSQL 9.2.2,今天在这里介绍一下在linux下用Eclipse编译PostgreSQL 9.2.2。我用的是eclipse-cpp-juno-SR2-linux-gtk专业版,可以从官网上下载,PostgreSQL的版本是9.2.2,操作系统的平台是ubuntu linux 12.10,32bit。第一步,安装,eclipse。ecli
2013-06-14 12:49:16 1465
原创 用VS2010追PostgreSQL源码
本篇主要讲述了怎么用VS2010追PostgreSQL源码的过程。使用的VS版本是VS 2010英文专业版,PG的版本是postgresql 9.2.2。首先第一步就是要安装编译好的PostgreSQL(见VS2010编译PostgreSQL 9.2.2)。打开黑DOS窗口(运行->cmd),切换到源文件目录postgresql-9.2.2\src\tools\msvc,之后输入命令ins
2013-06-14 12:47:35 2011
原创 MongoDB之Shard初步认识
准备工作1、 什么是shard副本集实现了网站的安全备份和故障的无缝转移,但是并不能实现数据的大容量存储,MongoDB实现的是分布式部署,把数据保存到其他机器上。实现这一过程的就是分片。2、 什么时候需要分片a) 用光了当前机器的磁盘空间b) 单个的Mongod已经无法提供你要的写入性能了c)
2013-06-14 12:45:04 1079
原创 运用BSon将数据记录转换成二进制
按照惯例,我在这里先介绍一下什么是BSon。BSon是Binary JSON的简称,是一种类Json的一种二进制形式的存储格式。目前Bson主要被MongoDB(目前一个较为流行的非关系数据模型的开源数据库)使用于存储数据和网络数据交换。下面我们进入正题,介绍一下BSon是怎么把一个个MongoDB的文档转换成二进制形式进行存储的,在此之前读者需要从BSon官网上大致了解一下其解释
2013-06-14 12:43:53 2588
原创 新入职应该注意的事情
今天看了一个老员工说新员工七宗罪的博客(http://www.cnblogs.com/iammatthew/archive/2013/03/01/2939030.html),觉得说的挺有道理的,今天在这里记录下来并分享一下感受。作为学计算机的人员和从事计算机行业的人来说,对于搜索引擎的选择肯定是Google,但是Google香港有时候并不能满足需求,所以一定要使用Google的应为主站(这
2013-06-14 12:42:42 938
原创 Eclipse的一些使用技巧(不定时更新)
这篇博客主要记录一些我在用Eclipse的使用技巧,会不定时的往里面添加新的内容。1.在linux下将eclipse锁定到快速启动。快速启动上的每一个文件都对应/usr/share/applications/目录下的一个文件,所以想要将eclipse锁定到快速启动就需要在这里添加一个后缀名为.desktop的文件。如eclipse.desktop文件,这里名字可以随便起,但是后缀名
2013-06-14 12:41:34 807
原创 Ubuntu的一些使用技巧(不定时更新)
这篇博客主要记录一些我在用Ubuntu的使用技巧,会不定时的往里面添加新的内容。1.一款好用的截屏软件:Shutter。安装命令如下:sudo add-apt-repository ppa:shutter/ppasudo apt-get updatesudo apt-get install shutter安装完毕后启动Shutter。如图所示:
2013-06-14 12:40:35 1126
原创 Java学习—开始篇
最近开始重新学习Java,之所以说是重新学习Java是因为在此之前看过许多Java教程的视频,也粗略的看过许多相关的书籍,但是发现还是不太会用。所以我感觉还是通过具体的程序来体会Java。学习的过程主要有一些简单的例子,但是跳跃性可能很大,还有就是以 Lucene 4.2作为学习的例子之一。Lucene是用Java编写的一个开源的全文索引工具库。接下来的这个博客分类的所有目录会在这里给出链接。由于
2013-06-14 12:39:09 885
原创 博客说明
以前没有在CSDN上写过博客,都是在开源中国写,突然想把博客移过来,但是CSDN不支持开源中国的博客搬家,所以只能手动移动,以后新发表的博客会在这两个社区同步。我的CSDN的博客地址为:http://blog.csdn.net/Adrastos?viewmode=list, 我的开源中国的博客地址为: http://my.oschina.net/liuzeli/blog。 博客中如果有错误或不
2013-06-14 12:36:12 632
原创 Java学习—网络编程(UDP)
这个篇博客来介绍一下用UDP协议进行网络编程。UDP协议是一种面向无连接的协议。简单来说,它是类似的一个邮局系统(或者可以用发短信的原理去理解)。有收件人和发件人,发件人可以直接发送邮件,不关心收件人是否可以收到。而收件人则当知道有邮件过来时去拿即可,也不需要告知发件人是否收到。在早期QQ视频聊天中就采用的是UDP协议。这种协议的延迟比较少,但是可能会出现丢失数据报的情况。这种特性比较适合
2013-06-14 10:03:53 950
原创 Java学习—I/O概述
在学习Java的I/O操作时最好的方法就是通过一个例子进行演练,在开始篇中说过,这个系列的博客也是部分结合Lucene的,使用Lucene需要一个测试集,这个测试集需要对其进行I/O操作,所以把这个作为学习I/O的一个实例吧。首先介绍一下LISA。LISA是一个测试的文档集,每篇文档由一个标题和一个摘要构成,我在这里拿它来作为学习Lucene的一个测试集。这个测试集的下载地址是http:/
2013-06-14 09:59:54 963
原创 Java学习—网络编程(TCP)
今天简单来介绍一下Java的另一种TCP协议下的网络编程。作为开始后先介绍一下什么是Socket(可能讲的有些晚了,应该在上一篇UDP中就进行讲解)。Socket也就是平时所说的“套接字”,用于描述IP地址和端口。应用程序可以通过使用Socket来向网络发出请求或者应答网络的请求。TCP协议是一种面向连接的协议,也就是说需要在通信的两端形成一条通信的线路。它与打电话的情形相似。如果
2013-06-14 09:57:27 991
原创 C学习—可变参数列表
一、引言回忆一下自己常用的printf库函数,你可能会发现一些端倪。#include intmain(int argc, char const *argv[]){ printf("hello c\n"); printf("%s\n""hello world\n""%d\n", argv[0], argc); return 0;}
2013-06-14 09:02:13 1245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人