/** * 选择排序之堆排序: * * 1. 基本思想: 堆排序是一树形选择排序,在排序过程中,将R[1..N]看成是一颗完全二叉树的顺序存储结构, * 利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。 * * 2. 堆的定义: N个元素的序列K1,K2,K3,...,Kn.称为堆,当且仅当该序列满足特性: Ki≤K2i Ki ≤K2i+1(1≤ I≤[N/2]) * 堆实质上是
/** * 冒泡排序:执行完一次内for循环后,最小的一个数放到了数组的最前面。相邻位置之间交换 * * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。 * 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡 * ,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上 * "漂浮",如此
/** * 归并排序:里面是一个递归程序,深刻理解之。 */ public class MergeSort { /** * 递归划分数组 * * @param arr * @param from * @param end * @param c * void */ public void partition(Integer[] arr, int from, int end) { // 划分到数组只有
String secret = mConsumerSecret + "&" + mOauthToken; SecretKey secretKey = new SecretKeySpec(secret.getBytes("US-ASCII"), "HmacSHA1"); Mac mac = Mac.getInstance("HmacSHA1"); mac.init(secretKey); byte[
/** * 读取配置文件 * @param file * @return */ public static PropertiesConfiguration loadConfig(String file){ PropertiesConfiguration config = null; try { config = new PropertiesConfiguration(file); config.s
public class JosephQuestion { public static void main(String[] args) { for (int i = 2; i < 11; i++) { findMonitor(initPersons(i),i); } } public static Person initPersons(int num) { Person firstPerson
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.junit.Test; ... @Test public void testCrossLanguageEncrypt() throws Exception{
private static String beforeBh; private static String beforeNum; public static String codeGenerate() { Date now = new Date(); String behind = now.getTime()+""; if(beforeBh==null) { beforeBh = behind;
public class PropsUtil { private static final Logger logger = LoggerFactory.getLogger(PropsUtil.class); private Properties props = null; public PropsUtil(String propsPath) { this(propsPath, Const.DEFA
约瑟夫问题 这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,数到第九个人就将他扔入大海。该人后面的人从1开始重新报数,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。 思路 1. 先建立一个类,有 id
private void output(HttpServletResponse response, String filePathAndFileName, String mimeType) throws IOException { File file = new File(filePathAndFileName); // set response headers response.setConte
通过移除空行和注释来压缩 JavaScript 代码 /** * This file is part of the Echo Web Application Framework (hereinafter \"Echo\"). * Copyright (C) 2002-2009 NextApp, Inc. * * Compresses a String containing JavaScript b
package Mypackage; public class QuickSort { public static void main(String[] args) { int[] arr = { 2, 5, 4, 3, 7, 0, 9, 1, 6, 8 }; quickSort(arr, 2, 7); for (int i = 0; i < arr.length; i++) System.out
public class FormatTools { /** * 判断邮箱 * * @param email * @return */ public static boolean isEmail(String email) { String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([
/** 操作数据库 */ public class BackupDb { public String backup() throws IOException{ String user = "root"; //数据库的用户名 String password = "admin";//数据库的密码 String database = "hrtweb";//要备份的数据库名 Date date = new
private double[] divide(double totalMoney,int num,double minMoney){ double[] each = new double[num]; for(int i=0;i<num-1;i++){ //计算最大安全值,保证不会超出 。如果安全值越大,价格波动越大 .建议是平均值 double maxSafeMoney = (totalMone
public class T { /** * 随机生成 num位数字字符数组 * * @param num * @return */ public static char[] generateRandomArray(int num) { String chars = "0123456789"; char[] rands = new char[num]; for (int i = 0; i < nu
public class JoinTest { public static void main(String[] args) { // TODO Auto-generated method stub Thread t1 = new ThreadA();//利用多态实例化一个A线程 Thread t2 = new ThreadB(t1);//利用多态实例化一个B线程 t1.start(); t2.s
public class GenerateSampleData { public void select() { String sql=""; Connection con = null; CallableStatement callAble=null; try{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://lo
package com.page; public class PageUtil { // 每页显示的条数 private int pageSize; // 总共的条数 private int recordCount; // 当前页面 private int currentPage; public PageUtil(int pageSize, int recordCount, int current