小技巧,杂乱的功能

Android Studio 方法名字:最左端的Structure
long startTime = System.currentTimeMillis(); // 获取开始时间******毫秒级ms是毫秒=0.001秒
long endTime = System.nanoTime(); // 获取结束时间 ******纳秒级ns是纳秒=0.000000001秒

package BasicFounction;

public class DFS {
static int size = 5;
static int size1 = 9;
static int[] data = new int[size];
static int[] data1 = new int[size1];
static int[] arr;
static int arrsize;
static int ssize = 3;
static int[] brr = new int[10];

public static void main(String[] args) {

	// DFS1(0);
	// DFS2(0);
	// DFS3(0);
	// DFS4(0, 1);
	// for (int i = 3; i < 6; i++) {
	// arrsize = i;
	// arr = new int[arrsize];
	// DFS5(0, 1);
	// }
	arrsize = 6;
	arr = new int[arrsize];
	for (int i = 0; i < arrsize; i++) {
		DFS6(0, i, 0);
	}
}

/**
 * 001,010,100,011,101,110,111
 * 
 * @param step
 *            步数
 * @param dsize
 *            数据由少变多
 */
private static void DFS6(int step, int dsize, int i) {
	if (step == dsize) {
		for (int k = 0; k < arrsize; k++) {
			System.out.print(arr[k] + " ");
		}
		System.out.println();
		return;
	}
	for (; i < arrsize; i++) {
		arr[i] = 1;
		DFS6(step + 1, dsize, i + 1);
		arr[i] = 0;
	}

}

/**
 * 最大重复值不超过ssize 1-9,略去小的数的排列
 * 
 * @param step
 * @param i
 */
private static void DFS5(int step, int i) {
	if (step == arrsize) {
		for (int j = 0; j < arrsize; j++) {
			System.out.print(arr[j] + " ");
		}
		System.out.println();
		return;
	}
	for (; i <= 9; i++) {
		if (brr[i] < 3) {
			arr[step] = i;
			brr[i]++;
			DFS5(step + 1, i);
			brr[i]--;
		}

	}

}

/**
 * 8个数中取出5个递增排序
 * 
 * @param step
 */
private static void DFS4(int step, int i) {
	if (step == size) {
		for (int j = 0; j < size; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	for (; i < size1; i++) {
		if (data1[i] == 0) {
			data1[i] = 1;
			data[step] = i;
			DFS4(step + 1, i);
			data1[i] = 0;
		}

	}

}

/**
 * 
 * 8个数中取出5个数全排列 ****** data1是标记数组 ****** data才是真正的数组
 * 
 * @param i
 */
private static void DFS3(int step) {
	if (step == size) {
		for (int j = 0; j < size; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	for (int i = 1; i < size1; i++) {
		if (data1[i] == 0) {
			data1[i] = 1;
			data[step] = i;
			DFS3(step + 1);
			data1[i] = 0;
		}

	}

}

/**
 * 1234的全排列
 * 
 * @param step
 * @param i
 */
private static void DFS2(int step) {
	if (step == size) {
		for (int j = 0; j < size; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	for (int i = 1; i <= size; i++) {
		if (panduan(step, i)) {
			data[step] = i;
			DFS2(step + 1);
		}
	}

}

private static boolean panduan(int step, int i) {
	for (int j = 0; j < step; j++) {
		if (data[j] == i) {
			return false;
		}
	}
	return true;
}

/**
 * 从0000-1111全遍历
 * 
 * @param step
 */
public static void DFS1(int step) {
	if (step == size) {
		for (int i = 0; i < size; i++) {
			System.out.print(data[i] + " ");
		}
		System.out.println();
		return;
	}
	data[step] = 0;
	DFS1(step + 1);
	data[step] = 1;
	DFS1(step + 1);
}

}

package BasicFounction;

public class ErFenFA {
static int[] arr;
static int N = 100;
static int S = 32;
static int iii = 0;

public static void main(String[] args) {
	arr = new int[N];
	for (int i = 0; i < N; i++) {
		arr[i] = i + 1;
	}
	output();
	int k = erfenfa(0, N - 1);
	System.out.println("*找到" + arr[k] + "*");
}

private static int erfenfa(int l, int r) {
	System.out.print("第" + iii++ + "次查找  " + "l:" + l + " r:" + r + "   ");
	if (l == r - 1) {// 返回的是位置,返回要跟下面的判断匹配
		return l;
	}
	int mid = (l + r) / 2;
	System.out.println(mid + "  中点值" + arr[mid]);
	if (arr[mid] <= S) {
		return erfenfa(mid, r);
	} else {
		return erfenfa(l, mid);
	}

}

private static void output() {
	for (int i = 0; i < N; i++) {
		System.out.print(arr[i] + " ");
	}
	System.out.println();
}

}

package BasicFounction;

public class PaiLieZuHe {
static int n =5;
static int[] arr = { 1, 2, 3, 4 };
static int[] data;
static int[] Data;
static boolean[] brr;
static int ns = 0;

public static void main(String[] args) {
	data = new int[n];
	// 标记数组
	brr = new boolean[n];
	// BFS数组

// int size = jiecheng(n);
// Data = new int[size];

// System.out.println(“DFS 0000遍历到1111”);
// DFS(0);
//
// System.out.println(“DFS2 给定数字进行3位排列”);
// DFS2(0);

// System.out.println(“DFS3 重复数字去重排列”);
// DFS3(0);
// for (int i = 0; i < size; i++) {
// System.out.println(Data[i]);
// }
// DFS4();
}

private static int jiecheng(int m) {
	int size = 1;
	for (int i = 1; i <= m; i++) {
		size *= i;
	}
	return size;
}

private static void DFS(int step) {
	if (step == n) {
		for (int j = 0; j < n; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	data[step] = 0;
	DFS(step + 1);
	data[step] = 1;
	DFS(step + 1);

}

private static void DFS1(int step) {
	if (step == n) {
		for (int j = 0; j < n; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	for (int i = 0; i < n; i++) {
		if (!brr[i]) {
			brr[i] = true;
			data[step] = arr[i];
			DFS1(step + 1);
			brr[i] = false;
		}
	}
}

private static void DFS2(int step) {
	if (step == n) {
		for (int j = 0; j < n; j++) {
			System.out.print(data[j] + " ");
		}
		System.out.println();
		return;
	}
	for (int i = 0; i < n; i++) {
		if (!brr[i]) {
			brr[i] = true;
			data[step] = i + 1;
			DFS2(step + 1);
			brr[i] = false;
		}
	}
}

private static void DFS3(int step) {
	if (step == n) {
		for (int j = 0; j < n; j++) {
			Data[ns] = Data[ns] * 10 + data[j];
			// System.out.print(data[j] + " ");
		}
		ns++;
		return;
	}
	for (int i = 0; i < n; i++) {
		if (!brr[i]) {
			brr[i] = true;
			data[step] = arr[i];
			DFS2(step + 1);
			brr[i] = false;
		}
	}
}

private static void DFS4() {

}

}

package BasicFounction;

public class PaiLieZuHe1 {
// 排列组合1!
static int size = 3;
static int bsize = 6;
static int[] arr = new int[size];
static int[] brr = new int[bsize];

public static void main(String[] args) {
	// 从1-20里面取出五个数排列
	test01function1(0);

}

public static void test01function1(int step) {
	if (step == size) {
		for (int i = 0; i < size; i++) {
			System.out.print(arr[i]);
		}
		System.out.println();
		return;
	}
	for (int i = 1; i < bsize; i++) {
		if (brr[i] == 0) {
			// arr数组中第step位置的数字为i
			arr[step] = i;
			// brr标志位设为1
			brr[i] = 1;
			// System.out.println(step + "迭代之前i:" + i);
			test01function1(step + 1);
			// System.out.println("当前i:" + i);
			// 返回到上层,使上层标志位设为0,可以继续循环
			brr[i] = 0;

		}
	}

}

}

package BasicFounction;

public class PaiLieZuHe2 {
// 排列组合2!
static int size = 3;
static int bsize = 10;
static int[] arr = new int[size];
static int[] brr = new int[bsize];

public static void main(String[] args) {
	// 从1-20里面取出五个数排列
	DFS(0, 1);

}

public static void DFS(int step, int i) {
	if (step == size) {
		for (int j = 0; j < size; j++) {
			System.out.print(arr[j] + " ");
		}
		System.out.println();
		return;
	}
	for (; i < bsize; i++) {
		if (brr[i] == 0) {
			// arr数组中第step位置的数字为i
			arr[step] = i;
			// brr标志位设为1
			brr[i] = 1;
			// System.out.println(step + "迭代之前i:" + i);
			DFS(step + 1, i);
			// System.out.println("当前i:" + i);
			// 返回到上层,使上层标志位设为0,可以继续循环
			brr[i] = 0;
		}
	}

}

}

package BasicFounction;

public class PaiLieZuHe3 {
// 排列组合3
static int[] arr = { 1, 3, 4, 6, 7 };
static int[] crr = new int[5];

public static void main(String[] args) {
	int[] brr = new int[2];
	f1(0, brr);
}

public static void f1(int step, int[] brr) {
	int l = brr.length;
	if (step == l) {
		for (int i = 0; i < l; i++) {
			System.out.print(brr[i] + " ");
		}
		System.out.println();
		return;
	}

	for (int i = 0; i < arr.length; i++) {
		if (crr[i] == 0) {
			// arr数组中第step位置的数字为i
			brr[step] = arr[i];
			// brr标志位设为1
			crr[i] = 1;
			// System.out.println(step + "迭代之前i:" + i);
			f1(step + 1, brr);
			// System.out.println("当前i:" + i);
			// 返回到上层,使上层标志位设为0,可以继续循环
			crr[i] = 0;

		}
	}

}

}

package BasicFounction;

public class PaiLieZuHe4 {
// 排列组合4
static int[] arr;
static int[] brr;

public static void main(String[] args) {
	brr = new int[10];
	for (int i = 3; i < 7; i++) {
		arr = new int[i];
		DFS(0, 1, i);
	}
}

public static void DFS(int step, int i, int brrl) {
	if (step == brrl) {
		System.out.println("数组为:");
		for (int j = 0; j < brrl; j++) {
			System.out.print(arr[j] + " ");
		}
		System.out.println();
		return;
	}

	// len个数1-9的全遍历
	for (; i <= 9; i++) {
		if (brr[i] < 3) {
			arr[step] = i;
			brr[i]++;
			DFS(step + 1, i, brrl);
			brr[i]--;
		}
	}
}

}

package BasicFounction;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class S0109_KuaiPai {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new FileInputStream(“E:\0109_KuaiPai.txt”));
int a = in.nextInt();
while ((a–) != 0) {
int b = in.nextInt();
int[] arr = new int[b];
for (int i = 0; i < b; i++) {
arr[i] = in.nextInt();
}
function1(arr);
System.out.println(“排序结束:”);
for (int i = 0; i < b; i++) {
System.out.print(" " + arr[i]);
}
System.out.println();
}
}

public static void function1(int[] arr) {
	function2(0, arr.length - 1, arr);
}

public static void function2(int l, int r, int[] arr) {
	if (l >= r) {
		return;
	}
	// 分一半

	int mid = function3(l, r, arr);
	// 各自再次递归分
	function2(l, mid - 1, arr);
	function2(mid + 1, r, arr);

}

/**
 * 
 * @param l
 *            左边
 * @param r
 *            右边
 * @param arr
 *            处理的数组
 * @return 回复的中点
 */
public static int function3(int l, int r, int[] arr) {
	int i = l;
	int j = r - 1;
	// 标志位
	int key = arr[r];
	// 左边与右边进行比较
	while (true) {
		// 当左边的数字大于标志位,
		// 注意while中的i和j条件
		while (arr[i] < key)
			i++;
		// 并且右边有一个数小于标志位
		while (i < j && arr[j] >= key)
			j--;
		// 出口
		if (i >= j) {
			break;
		}
		// // 如果是大于
		// 左边的大数与右边的小数换位置
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}

	// 中间位置与标志位换位置
	arr[r] = arr[i];
	arr[i] = key;
	// 返回中间位置
	// System.out.println("调换标志后排序:");
	// for (int n = 0; n < arr.length; n++) {
	// System.out.print(" " + arr[n]);
	// }
	// System.out.println();

	return i;
}

}

package BasicFounction;

import org.junit.Test;

public class Testcase {
@Test
public void test01() {
String a = " q w e r t fd 3 ";
int b[] = function(a);
for (int c : b) {
System.out.print©;
}
}

public int[] function(String a) {
	char b[] = a.toCharArray();
	int d[] = new int[b.length];
	for (int i = 0; i < b.length; i++) {
		if (b[i] == 32) {
			d[i] = 0;
		} else {
			d[i] = 1;
		}

	}
	return d;
}

@Test
public void test02() {
	String a = "asdfghj";
	StringBuffer[] q = new StringBuffer[3];
	q[1] = new StringBuffer();
	q[1].append(a);
	q[2] = new StringBuffer();
	q[2].append(a);
	q[0] = new StringBuffer();
	q[0].append(a);
	for (int i = 0; i < q.length; i++) {
		System.out.println(q[i]);
	}
	for (int i = 0; i < q.length; i++) {
		q[i].deleteCharAt(1);
		System.out.println(q[i]);
	}
}

@Test
public void test03() {
	int[][] a = { { 0, 1, 0, 1, 1, 1, 1, 1, 1 },
			{ 0, 1, 0, 0, 0, 1, 0, 0, 1 } };
	int b = 010111111;
	for (int i = 0; i < a.length; i++) {
		for (int j = 0; j < a[i].length; j++) {
			System.out.print(a[i][j]);
		}
	}
	System.out.println();
	for (int i = 0; i < a.length; i++) {
		// a[i][2]="";

	}
	for (int i = 0; i < a.length; i++) {
		for (int j = 0; j < a[i].length; j++) {
			System.out.print(a[i][j]);
		}
	}
}

@Test
public void test04() {
	String a = "010001001";
	char b[] = a.toCharArray();
	for (int i = 0; i < b.length; i++) {
		System.out.print(b[i] + " ");
	}
	int c[] = new int[9];
	System.out.println();
	for (int j = 0; j < 9; j++) {
		c[j] = (b[j] - '0');
		System.out.print(c[j]);
	}
	System.out.println("    uvgyvhvj");
	int d = Integer.parseInt(a);
	System.out.println(Integer.toHexString(d));

}

@Test
public void test05() {
	int a = 13;
	int b = 9;
	if ((a | b) == a) {
		System.out.print(true);
	}
}

@Test
public void test06() {
	int a = 1;
	int c = 1;
	int jz = 10;
	while (jz < a) {
		c++;
		jz = jz * 10;
	}
	System.out.println(c);
}

@Test
public void test07() {
	int x = 1 + (int) (Math.random() * 24);
	System.out.println(x);
}

@Test
public void test08() {
	int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
			18, 19, 20 };
	for (int j = 0; j < 20; j++) {
		int s = 0;
		for (int i = 0; i < a[j]; i++) {
			s += i * i;
		}
		System.out.print(s + ",");
	}
}

}

package BasicFounction;

public class Time {
static int suiji = 5;
static int size = 1000;
static int arr[][];

public static void main(String[] args) {
	long startTimems = System.currentTimeMillis();
	long startTimens = System.nanoTime();

	int i, j, k, temp;
	arr = new int[size][size];
	for (i = 0; i < size; i++) {
		for (j = 0; j < size; j++) {
			arr[i][j] = (int) (Math.random() * 1000000);
		}
	}

// System.out.println(“原始数组”);
// outprint(arr);

	for (i = 0; i < size; i++) {
		for (j = 0; j < size; j++) {
			k = (int) ((double) mRand() / 32767 * (size - 1));
			// System.out.print(j + " ");
			temp = arr[i][k];
			arr[i][k] = arr[i][j];
			arr[i][j] = temp;
		}
	}

// System.out.println(“乱序数组”);
// outprint(arr);

	long endTimems = System.currentTimeMillis();
	long endTimens = System.nanoTime();
	System.out.println("程序运行时间:" + (endTimems - startTimems) + "  ms");
	System.out.println("程序运行时间:" + (endTimens - startTimens) + "  ns");
}

/**
 * 获得随机数
 * 
 * @return
 */
private static int mRand() {
	suiji = suiji * 1103515245 + 12345;
	return (suiji >> 16) & 32767;

}

private static void outprint(int crr[][]) {
	int i, j;
	for (i = 0; i < crr.length; i++) {
		for (j = 0; j < crr[i].length; j++) {
			System.out.print(crr[i][j] + " ");
		}
	}
	System.out.println();
}

}

package ErChaShu;

public class Erchashu {
/**
* 迭代的二叉树用法
*
* @param args
*/
public static void main(String[] args) {
// 根节点–左子树–右子树
System.out.println(“前序遍历:”);
qianxu(1);
// 左子树–根节点–右子树
System.out.println("\n中序遍历:");
zhongxu(1);
// 左子树–右子树–根节点
System.out.println("\n后序遍历:");
houxu(1);
}

public static void qianxu(int n) {
	char[] date = { 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
	int m = date.length;
	if (n * 2 >= m) {
		System.out.print(date[n]);
		return;
	}
	System.out.print(date[n]);
	qianxu(n * 2);
	qianxu(n * 2 + 1);
}

public static void zhongxu(int n) {
	char[] date = { 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
	int m = date.length;
	if (n * 2 >= m) {
		System.out.print(date[n]);
		return;
	}
	zhongxu(n * 2);
	System.out.print(date[n]);
	zhongxu(n * 2 + 1);
}

public static void houxu(int n) {
	char[] date = { 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
	int m = date.length;
	if (n * 2 >= m) {
		System.out.print(date[n]);
		return;
	}
	houxu(n * 2);
	houxu(n * 2 + 1);
	System.out.print(date[n]);
}

}

package Text;

public class Textcase {
private static String AAA=“SSS”;
public static void main(String[] args) {

	// trim();
	// shuangyinhao();
	// adds();
	int a = 5;
	int s = a;
	for (int i = 0; i < 9; i++) {
		System.out.println("结果:" + s);

// s = a;
System.out.println("***");
int b = 1 << i;
System.out.println(a + " 异或 " + b);
s =a^ 1 << i;
}
}
public static void WWWW(){
AAA=“QQQ”;
System.out.println(AAA);
}

private static void adds() {
	String s0 = "abc";
	String s1 = "def";
	String s2 = s0 + s1;
	System.out.println(s2);
}

/*
 * .trim()起始和结尾的空格都被删除
 */
public static void trim() {
	String s = "  hello word!  ";
	System.out.println("**" + s + "**");
	String s1 = s.trim();
	System.out.println("**" + s1 + "**");
}

public static void shuangyinhao() {
	String s = "hello word!";
	s = '"' + s + '"';
	System.out.println(s);
	s = s.replaceAll("\"", "");
	System.out.println(s);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值