- 浏览: 57547 次
- 性别:
- 来自: 火星
-
最新评论
-
jjjssh:
你好,有没有完整的demo,我想研究下,我部署的war包,总是 ...
ear,war包下velocity模板找不到 -
LSQ6063:
这个图显示的有待商确
堆排序(HeapSort) Java实现 -
javaeye官理员:
...
堆排序(HeapSort) Java实现 -
hongjn:
tan4836128 写道缺点:该算法的的时间长度:data. ...
计数排序(CountingSort) Java实现 -
tan4836128:
我得给楼主拍砖,算法展示出来,同时要分析说明思路,执行过程,优 ...
计数排序(CountingSort) Java实现
文章列表
动机:
想在Oracle中用一条SQL语句直接进行Insert/Update的操作。
说明:
在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就更新(Update),不存在数据时,就插入(Insert)。
实战:
接下来我们有一个任务,有一个表T,有两个字段a,b,我们想在表T中做Insert/Update,如果存在,则更新T中b的值,如果不存在,则插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下:
hadoop主要包含了MapReduce和HDFS两个要点。
infoq上面的入门文章分享。
http://www.infoq.com/cn/articles/hadoop-intro
http://www.infoq.com/cn/articles/hadoop-config-tip
http://www.infoq.com/cn/articles/hadoop-process-develop
阅读完很有收获,对hadoop算是理论上的小小入门了,还要投入时间和精力。
Java中的int类型,占据四个字节,32位。
它的最大值是0111 1111 1111 1111 1111 1111 1111 1111,因为第一位是符号位,正数表示为0,因此得到的231=2147483647
同样的道理,int类型的最小值的二进制是1000 0000 0000 0000 0000 0000 0000 0000,我们也可以得到它的值是-231-1=-2147483648
关于二进制转换成为十进制是计算机的基础啦。
正数等于它的原码的值;
负数等于它的补码,也就是反码加1
1.十进制数字可以和二进制数进行转换。
例如:十进制的10等于二进制的1010,15的二进制表示为1110。
2.一个简单的算法:对于2的n次幂减1的数字j = 2n-1,例如2-1,4-1,8-1,16-1,32-1,64-1,128-1...等,在java程序中,对于任意的int类型的数字i,有0 <= i & j <= j,也就是i&j的结果总是分布在[0,2n-1]之间。
3.理由:因为2n-1的二进制是1111111...(n-1个)0,任何整数与其进行&运算,得到的结果必然不会大于1111111...(n-1个)0
package org.hongjn.algorithm.sort;
import java.util.Arrays;
/**
* 基数排序Java实现
* @date 2011-10-19
*/
public class RadixSort {
/**
*
* @param data 待排序数组
* @param digitNum 数组中元素的位次
*/
public static int[] sort(int[] data) {
// 取得数组中最大的元素
...
/**
* 计数排序
*/
public class CountingSort {
/**
* 输入数组的元素都是介于0..k之间的
* @param data 待排序数组
* @param k 最大元素
* @return 排序结果
*/
public static int[] sort(int[] data, int k) {
// 存放临时数据的数组tmp,初始元素都是0;k为数组中最大元素
int[] tmp = new int[k + 1];
...
public class QuickSort {
/**
* 快排序
* @param data 待排序数组
* @param startIndex 开始排序元素的索引
* @param endIndex 结束排序元素的索引
*/
public static void sort(Comparable[] data, int startIndex, int endIndex) {
if (startIndex < endIndex) {
int middleIn ...
堆排序的思想是利用数据结构--堆。具体的实现细节:
1. 构建一个最大堆。对于给定的包含有n个元素的数组A[n],构建一个最大堆(最大堆的特性是,某个节点的值最多和其父节点的值一样大。这样,堆中的最大元素存放在根节点中;并且,在以某一个节点为根的子树中,各节点的值都不大于该子树根节点的值)。从最底下的子树开始,调整这个堆结构,使其满足最大堆的特性。当为了满足最大堆特性时,堆结构发生变化,此时递归调整对应的子树。
2. 堆排序算法,每次取出该最大堆的根节点(因为根节点是最大的),同时,取最末尾的叶子节点来作为根节点,从此根节点开始调整堆,使其满足最大堆的特性。
3. 重复上一步操作,直到堆 ...
归并排序的Java实现:
import java.util.Arrays;
public class MergeSort {
public static void sort(Comparable[] data, int p, int r) {
/*
* p = 0; r = 3; total 4;
* q = (0 + 3) / 2; q = 1;
* sort(0, 1); sort(2,3);
* sort(p, q); sort(q + 1, r);
...
var checkValue=$("#select_id").val(); //获取Select选择的Value
$("#select_id").val(4); //设置Select的Value值为4的项选中
$("#select_id").val(4).change(); //触发change事件
1)Adding a single option - by appending HTML
$('#example').append('<option value="foo" selected=&quo ...
Eclipse快捷键,把以前不知道的补上了,啊哈
个人用的最多的是ctrl+shift+R, ctrl+shift+T, ctrl+K, alt+向上,向下等。
插入排序:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。【引用·维基百科】
Java代码实现的两种方法:
public class InsertionSort {
public static void sort(Comparable[] data) {
for (int i = 1; i < data.length; i++) {
...
Class的getResourceAsStream(String path)
1)可以使用相对路径和绝对路径,绝对路径以'/'开头,如Test.class.getResourceAsStream("/a/b/file");
2)相对路径为当前类同级目录下的file,或者子目录下的文件,如
Test.class.getResourceAsStream("file");
Test.class.getResourceAsStream("dir/dir/file")
ClassLoader的getResourceAsStream(Strin ...
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
注:不能通过赋值符号对sb进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个 ...
定义注解:
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public ...