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);
}
}