`
文章列表
/** * 选择排序: * */ public class SelectionSort { public void sort(int[] data) { for (int i = 0; i < data.length; i++) { int lowIndex = i; for (int j = data.length - 1; j > i; j--) { if (data[j] < data[lowIndex]) { lowIndex = j; } } swap(data, i, lo ...
/** * 插入排序: * */ public class InsertSort { public void sort(int[] data) { for (int i = 1; i < data.length; i++) { for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) { swap(data, j, j - 1); } } } private void swap(int[] data, int i, int j) { ...
/** * 改进后的快速排序: * */ public class ImprovedQuickSort { private static int MAX_STACK_SIZE = 4096; private static int THRESHOLD = 10; public void sort(int[] data) { int[] stack = new int[MAX_STACK_SIZE]; int top = -1; int pivot; int pivotIndex, l, r; stack[++top] = 0 ...
/** * * 改进后的归并排序: * */ public class ImprovedMergeSort { private static final int THRESHOLD = 10; public void sort(int[] data) { int[] temp = new int[data.length]; mergeSort(data, temp, 0, data.length - 1); } private void mergeSort(int[] data, int[] temp, int l, int r) ...
/** * * 堆排序: * */ public class HeapSort { public void sort(int[] data) { MaxHeap h = new MaxHeap(); h.init(data); for (int i = 0; i < data.length; i++) h.remove(); System.arraycopy(h.queue, 1, data, 0, data.length); } private static class MaxHeap { void init ...
/** * 冒泡排序: * */ public class BubbleSort { public void sort(int[] data) { for (int i = 0; i < data.length; i++) { for (int j = data.length - 1; j > i; j--) { if (data[j] < data[j - 1]) { swap(data, j, j - 1); } } } } private void swap(int[] data, ...
Java的IO基于装饰器模式设计。根接口是InputStream/OutputStream,根据来源不同充当数据源的有 FileInputStream/FileOutputStream, ByteArrayInputStream/ByteArrayOutputStream等,充当装饰功能的IO类有 BufferedInputStream/BufferedOutputStream, DataInputStream/DataOutpu ...
一个Java(JTree)拖拽的例子,其核心思想还是去实现Java拖拽的三个接口:DragGestureListener,   DragSourceListener, DropTargetListener。实现后的效果如下图:从左侧树上拖拽一个文件到右侧打开。代码已经编译通过,不需要第三方Java包。 package com.zakisoft.drug; import java.awt.AlphaComposite; import java.awt.Component; import java.awt.Graphics2D; import java.awt.Point; im ...
很长时间没有听到关于Java3D的消息了,好像Sun已经放弃了Java3D一样,不过Java3D作为一门纯正的面向对象的3D技术,还是很值得我们学习和使用的。不过话说回来Java3D开发的真是比较粗糙。下面介绍些Java3D常用的类吧。 Canvas3D 类 Ca ...
一个最简单的Java3D的例子。 import java.applet.Applet; import java.awt.BorderLayout; import java.awt.GraphicsConfiguration; import javax.media.j3d.Alpha; import javax.media.j3d.BoundingSphere; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import javax.media.j3d.RotationInterpol ...
用Java进行图像处理,会遇到ColorSpace这个类:ColorSpace public abstract class ColorSpace extends Object implements Serializable 这个类的作用用官方语言就是就很困惑了,我这里举一个例子大家就明白这个类是做什么的了,大家利用Photoshop新建一副图片的时候都要选择“颜色模式” 图片中的“颜色模式”就是我们这里的ColorSpace。我们可以利用ColorSpace将一个颜色模式抓换成另一个颜色模式。这点也好理解:你把一副彩色图片复制到灰度图片上,图片就是一个灰色的图片。 ColorSpace作用 ...
因为Swing提供的JTable用起来比较困难,而且实现功能也比较麻烦,所以自己封装了一个JTable工具,来实现常用的对JTable的操作,使用该工具包获得到JTable,功能强大,用起来也非常简单。利用该工具来操作JTable是线程安全的,可 ...
对图片进行边缘检测在很多领域是非常重要的,例如:车牌号码的识别。边缘检测用到的算法我这里既不关心也不去深究了,只提供算法,对算法有兴趣的读者可以自己去找找图像处理的书参考下,或者也可以给我留言。 public final BufferedImage getPicEdge(BufferedImage originalPic) { int imageWidth = originalPic.getWidth(); int imageHeight = originalPic.getHeight(); BufferedImage newPic = new BufferedImag ...
程序员是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的。当然,既然是人,当然是会有性格的,也是会有脾气的。下面,让我来看看十件能把程序惹毛了的事情。一方面我们可以看看程序 ...
Java图像的钝化和锐化就是一个算法的问题,说白了就是两个方法的问题,所以非常容易,我觉得甚至比图像的加载和保存都简单。图像的加载请参考两篇站内文章:http://javapub.iteye.com/blog/683944 和 http://javapub.iteye.com/blog/682257。 具体的锐化和钝化设计到的数学原理超出我的关心范围了也不去做过多的研究这里直接拿出道供大家参考: 图像钝化算法: public final BufferedImage getDlurPicture(BufferedImage originalPic) { int imageWidth = ...
Global site tag (gtag.js) - Google Analytics