- 浏览: 188853 次
- 性别:
- 来自: 上海
-
最新评论
文章列表
Java集合1:Collection集合接口
- 博客分类:
- JAVA
1.集合接口继承图
2. java.io 接口 Serializable
类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
3. java.lang 接口 Cloneable
此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone ...
1.
/*
* 对于一个正整数n而言,它的一个分割,就是把n写成若干个正整数的和,但不计较书写的顺序,请写一个程序,输入n,把n的所有分割显示出来~
*/
public static void print1(int n) {
if (n > 0) {
List<String> list = new ArrayList<String>();
for (int i = 1; i <= n / 2; i++) {
f(n - i, i, "+" + i, list);
}
in ...
多个序列组合,序列保持有序
- 博客分类:
- 算法
// 有一个二维Vector,每个元都是字符串(或者其他对象),
// 如下面这个三行,每行元素不固定的二维Vector V
// A、B、C、D
// H、I、J、K、M
// X、Y、Z
// 求出满足以下条件的所有Vector D:
// 1.此Vector D的元素包含V的所有元素,且每个元素仅出现一次
// 2.此Vector
// D中包含在V【1】中的元素之间的顺序不能发生改变,即A、B、C、D之间的顺序不发生改变,同理,V【2】、V【3】。。。。都不发生改变。
// 对于本例,也就是说,在结果D中,A、B、C、D的先后顺序不变, ...
最大公约数,最小公倍数
- 博客分类:
- 算法
1.
/*
* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
* 1.如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,
* 叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
* 2.辗转相除法是古希腊求两个正整数的最大公约数的,也叫欧几里德算法,其方法是用较大的数除以较小的数,
* 上面较小的除数和得出的余数构成新的一对数,继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。
* 3.最小公倍数为两数相乘再除以最大公约数
*/
...
稳定性比较
稳定:插入排序、冒泡排序、二叉树排序、二路归并排序
不稳定:选择排序、希尔排序、快速排序、堆排序
时间复杂性比较
插入排序、冒泡排序、选择排序为O(n^2)
其它为O(nlog2n)
1.
/*
* 题目:对10个数进行排序
*/
// 冒泡排序
// 已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。
// 再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以 ...
1.
/*
* 题目:打印出如下图案(菱形)
*/
// *
// ***
// *****
// *******
// *****
// ***
// *
/*
* 序列为 1,3,5,7,5,3,1
*/
public static void print22() {
int start = 1;
int end = 7;
int count = 2;
while (start > 0) {
for (int i = 0; i < (en ...
数N的全排列,两队对阵问题
- 博客分类:
- 算法
/*
* 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,
* c说他不和x,z比,请编程序找出三队赛手的名单。
*/
public static void print20() {
long start = System.currentTimeMillis();
char a, b, c;
for (a = 'x'; a <= 'z'; a++) {
for (b = 'x'; b <= 'z'; b++) {
...
1.
/*
* 题目:输入某年某月某日,判断这一天是这一年的第几天?
*/
public static void print14(int year, int month, int day) {
long start = System.currentTimeMillis();
int[][] monthDays = { { 1, 31 }, { 2, 59 }, { 3, 90 }, { 4, 120 }, { 5, 151 }, { 6, 181 }, { 7, 212 }, { 8, 243 }, { 9, 273 }, { 10, 304 },
...
题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
解析:(参考百度百科)
完全数(Perfect number)
又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
相关概念
对于“4”这个数,它的真约数有1、2,其和是3,比4本身小,像这样的自然数叫做亏数。对于“12”这个数,它的真约数有1、2、3、4、6,其和是16,比12本身大,像这样的自然数叫做盈数。所以,完全数就是既不盈余,也不亏欠的自然数。
完全数有许多有 ...
1.
/*
* 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
*/
public static void print() {
String src = "abc123ABC!@# \ndefDEF456&\r*";
if (src != null && src.length() > 0) {
StringBuffer lowerC ...
题目:求素数。
分析:质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
package com.study.prime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Prime {
public void printPrime(int start, int end) {
if (start > 0 && end >= start) {
Sy ...
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序中的bearAge为3时,即为题目中的3个月,也可以为任意大于 ...
MySql 一个存储过程的例子
- 博客分类:
- MySql
MySql 存储过程简单示例:
CREATE DEFINER=`root`@`%` PROCEDURE `proc_calculate_combo_price`(IN `comboId` VARCHAR(36), OUT `price` DOUBLE, OUT `reallyPrice` DOUBLE)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '计算服务套餐的价格'
BEGIN
declare minPeriodType varchar(36);
decl ...
Lucene 构建索引
- 博客分类:
- Lucene
1. 索引过程
1.1 提取文本和创建文档
首先从文件中提取文本格式信息,并用这些文本信息创建Lucene文档和域。
1.2 分析文档
创建Lucene文档和域后,就可以调用IndexWriter对象的addDocument方法将数据传递给Lucene进行索引操作了。在索引操作时,Lucene首先分析文本,将文本数据分割成语汇单元串,然后对它们执行一些可选操作。如:LowerCaseFilter类实现搜索不对大小写敏感、StopFilter类从输入中去掉一些使用频繁却没有意义的词、PorterStemFilter类处理英文文本去掉它们的词干。这些将原始 ...
Lucene 第一个Lucene例子
- 博客分类:
- Lucene
第一个Lucene例子,使用lucene-4.0.0,中文查询没有结果。
1.创建索引
package lucene.index;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analy ...