On the way

OJ练习的输入输出

标准输入输出(POJ) Java POJ中,提交java 代码默认保存到了一个Main.java的文件,所以代码里的类名也需要命名为Main,大概这个ACM中默认的约定。 public class Main { public static void main(String[] args) throws Exception { Scanner in = new Sc...

Java IO系统

File 类 目录列表 File 既能代表一个特定的文件的名称,也能代表一个目录下的一组文件的名称,如果是一个文件集,则可以调用 list() 方法返回字符数组。 // 能访问java/util目录下的所有类,不能访问java/util子目录下的所有类。 // 因为如果java.util里面有个a类,java.util.regex里面也有个a类,我们若是要调用a类的方法或属性时,无法判断...

java Object和Objects区别

java.lang.Object java中所有的 class 都继承自 Object java.util.Objects Objects 只是包含一些操作Object实例的工具方法,并且Objects 不能被实例化,它是final 的并且没有public的构造器。 只包含一些static 方法。 public final class Objects { private Ob...

Java 数组

《Think in Java》 16章 数组的特殊性 效率。在Java中数组是效率最高的存储和随机访问对象引用序列的方式。代价是大小被固定。 类型。在泛型之前,其他类型的容器在处理对象时,都视为没有任何具体类型,即当做Object。而数组可以指定持有某种具体类型, 可以在编译的时候就可以检查是否插入了不正确的类型。 保存基本类型。泛型之前的容器不能保持基本类型,但有了泛型,...

系统模型-《分布式系统概念与设计》

《分布式系统概念与设计》 1、2章 第一章:分布式系统的特征 定义:软件或硬件组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统。 特征: 组件并发。执行并发程序。 缺乏全局时钟。这是通信是通过网络发送消息所决定。 故障独立性。组件出现故障,不影响其他组件。 构造和使用分布式系统是为了资源共享。 服务:计算机系统中管理相关资源并提供功能给用户和应用...

Java 容器

《Thinking in Java》11章 数组 相同类型的,用一个标识符名称封装到一起的一个对象序列或者基本类型数据序列,可以通过方括号 [] 访问。 java的主要目标之一就是安全,所以不会有数组越界访问,并且数组都会被初始化。和其他容器的区别? 数组需要设置大小,而其他容器类不需要。 数组可以保存基本数据类型,其他容器类只能保存对象。 定义: int[] a; // 这...

快速排序

#include <iostream> #include <vector> #include <time.h> using namespace std; void Swap(int &s, int &t) { int tmp = s; s = t; t = tmp; } int Partition(vector...

改进的归并排序

采用链表的形式,避免数组元素的频繁交换。 #include <iostream> #include <vector> #include <time.h> using namespace std; int InSort(vector<int>& A, vector<int>& Link, int low, int h...

单源最短路径问题

关于图的单源最短路径的C++ 实现,以POJ 2387:Til the Cows Come Home 为例AC。 Bellman-Ford算法 采用动态规划思想的解法。要求没有负圈,如果有负圈的话就没有解了。 对所有边进行松弛操作,共V−1次,其中 V 是图节点的数量。时间复杂度O(VE)。V和E分别是节点和边的数量。 另外可以用SPFA算法进行优化,因为松弛操作必定只会发生在最短路径前...

凸包算法

定义 凸包是包所有点的最小的凸状集合 葛立恒(Graham)扫描法 以逆时针/左转的方式穿过凸包 选择y轴坐标最小的点(最低点)作为p点,即扫描的起始点,会发现从p点到其他每个点的向量的极角值递增。 难点: 如何找到最低点?对y坐标排序 如何根据极角大小排序,以及如何比较这些点? 如何判断两点间是否是逆时针旋转? 计算凸包的主要部分就是排序。有一个好的排序...