`
文章列表
在N个元素中选取前K个最大数,流传较多的是利用小顶堆和利用快排中的partition两种方法: http://www.kuqin.com/algorithm/20111105/314362.html http://www.kuqin.com/algorithm/20111105/314363.html 前者的复杂度稳定在o(n*logk),而后者虽然平均复杂度也在o(n*logk), 但是单次复杂度依赖于划分点pivot的选择, 极端情况下会退化为o(n*k). 所以我觉得还是小顶堆比较好.   附:堆排序算法  
容器 概念     Java API 所提供的用于在程序中存放对象的一系列类的实例。     数组其实也是一种容器, 不过其他容器类都不用也不能指定大小。   容器API 位于 java.util 包内; 类图结构如下: Collection 接口 —— 定义了存取一个一个对象的方法,其子接口 Set 和 List 分别定义了存储方式 Set 中的数据对象无序且不重复; List ... 有序且可重复; “重复”的定义:互相equals()。 Map 接口 —— 定义了存储 "key - value 映射对" 的方法。   ...
  class C { int i; String j; public C(int i, String j) {this.i = i; this.j = j;} // #1 public boolean equals(Object o) { if (null == o) return false; if (o instanceof C) { C c = (C) o; return this.i == c.i && this.j.equ ...
常用类 字符串相关类(String, StringBuffer) 基本数据类型包装类 Math类 File类 枚举类 更多参考API文档 常用类——String     java.lang.String类代表不可变的字符序列。     "xxxxx"是String类的一个对象常量。     String类常见的构造方法 String(String original) 创建一个String对象为original的拷贝 String(char[] value) 用一个字符数组创建String对象 String(char[] value, ...
数组 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 差别:C/C++中的数组是可以分配在栈上的 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 一维数组的声明 格式:type var[]; 或 type[] var; Note:Java语言中声明数组时不能指定其长度(而在创建时,比较C/C++); 数组对象的创建 格式: 数组名 = new 数组元素类型[元素个数] public class Test { public static void ma ...
抽象类 关键字abstract 含有抽象方法的类必须声明为抽象类; 抽象类必须先被继承,不能直接实例化; 抽象方法只需声明不需实现,所以必须在子类中被重写(类似C++中的纯虚函数) abstract class A { ... public abstract void b(); // note: 这里没有“{}”了 ... } 如果并不打算由抽象类的子类来实现抽象方法,可以将该子类再声明为抽象类,在其中再次声明该抽象方法,由他的子类(“孙子类”)去实现。 final关键字 final变量的值不能修改(相当于C++的const关键字,当常量 ...
J2SDK中主要的包介绍   位置%JAVAHOME%\jre\lib\rt.jar, rt: runtime, 这个jar文件意为虚拟机运行时必用到的那些包.   CMD下将类文件达成jar包的方法: 在最上层包所在目录下输入命令jar -cvf xx.jar *.*  使用打好的jar包: 把jar文件的全路径名添进%CLASSPATH% 即可。   java.lang 包含一些Java语言的核心类(如String, System, Math, Integer和Thread等), 提供常用功能. 唯有java.lang包无需import, 直接使用. java.awt 包含了 ...
  J2EE框架 EJB (Enterprise JavaBean) 3.0 JAVA两大特色 JVM 一次编译, 到处运行 跨平台 JAVA是解释型的语言 -- 要编译成.class文件, 再由JVM逐条解释执行 垃圾收集器 JDK安装 安装路径最好没有空格, 以避免在某些情况下出错; 另一种避免的办法是在添写环境变量或类似时候用双引号把路径框起来 装完JDK最好再装一个JRE, 让开发环境与其他正常使用的JAVA程序的运行环境区别开 环境变量 %PATH%: "%JAVA_HOME%\bin;" %CLASS ...
/* Porter stemmer in Java. The original paper is in Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14, no. 3, pp 130-137, See also http://www.tartarus.org/~martin/PorterStemmer History: ...
《用 Hadoop 进行分布式并行编程, 第 2 部分——程序实例与分析》   《用 Hadoop 进行分布式并行编程, 第 3 部分——部署到分布式环境》
查看系统进程——ps      要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以 确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。      ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用 ps命令了。      该命令语法格式如下: ps [选项] ...
《用 Hadoop 进行分布式并行编程, 第 1 部分——基本概念与安装部署》 写道 MapReduce 计算模型 MapReduce 是 Google 公司的核心计算模型,它将复杂的运行于大规模集群上的并行计算过程高度的抽象到了两个函数,Map 和 Reduce, 这是一个令人惊讶的简单却又威力巨大的模型。适合用 MapReduce 来处理的数据集(或任务)有一个基本要求: 待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理 。 图 1. MapReduce 计算流程 图一说明了用 MapReduce 来处理大数据集 ...
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->   如果想重写父类的方法,比如toString() 方法的话,在方法前面加上@Override 系统可以帮你检查方法的正确性, @Override public String toString(){...} 这是正确的 一旦写错 写成这样 @Override public String tostring(){...} ...
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 生成一个本主机的密钥对 -t dsa                      DSA型密钥 -P ''                         空密语 -f ~/.ssh/id_dsa      把生成的密钥输出到文件里,"~/"是代指用户主文件夹,.ssh是ssh在其下建立的隐藏文件夹,权限700其他用户不可访问必须的!生成的公钥则存在与这个文件对应的.pub文件中   $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorize ...
安装 方法一: $ sudo apt-get install sun-java6-jdk  但是有时显示源里找不到,或者找到但已废弃; 原因查到了, http://wiki.ubuntu.org.cn/Qref/Lucid 写道 Sun的JRE被移到了新的partner源里,可以这样安装: sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jre sun- ...
Global site tag (gtag.js) - Google Analytics