算法与数据结构
这家伙是个好家伙
这个作者很懒,什么都没留下…
展开
-
杨辉三角Java
杨辉三角public class yangHuiTest { public static void main(String[] args) { //1.声明并初始化二维数组 int [][] yangHui = new int [10][]; //2.给数组元素赋值 for(int i = 0;i < yangHui.length;i++) { yangHui[i] = new int [i + 1]; //给数组首元素赋值 yangHui[i][0] = yan原创 2022-03-08 15:43:50 · 228 阅读 · 0 评论 -
二进制位运算2
_04_是不是2的整数次方用一条语句判断一个整数是不是 ** 2 的整数次方2的整数次方,二进制中只有一个1(x-1)&x : 将x的二进制数中的低位1消去x: 01000x-1: 00111(x-1)&x:00000**public class _04_是不是2的整数次方 { public static void main(String[] args) { System.out.print("请输入任意整数:"); Scanner scanner = new原创 2022-03-08 15:30:56 · 450 阅读 · 0 评论 -
二进制位运算1
_01_唯一成对的数**问题描述1—1000这1000个数放在大小为1001的数组中,只有唯一的一个元素值重复,其他均只出现一次。每个数组元素只能访问一次,设计一个算法,将这个重复的元素找出来。不用辅助存储空间,能否设计一个算法实现?题解分析我们知道,在位运算中,a^a = 0,b^0 = b。这样我们可以利用这个性质将不重复的数都消掉,就可以得到重复的那个数了。但是1—1000中只有一个数是重复的,如果我们直接将这1001个数进行异或,就会将这个重复的数给消去。仔细想一想,我们可以这样:我原创 2022-03-08 15:28:05 · 424 阅读 · 0 评论 -
图——DFS和BFS
DFSpublic class dfs { private static String[] nodeName = {"A","B","C","D"}; private static int Max = Integer.MAX_VALUE; private static int [][]maxtix = new int[][] { {0,1,Max,1}, {Max,0,1,Max}, {Max,Max,0,Max}, {Max,Max,Max,0}, }; public stat原创 2022-03-08 15:23:47 · 82 阅读 · 0 评论 -
排序——冒泡排序
冒泡排序public class 冒泡排序 { public static void main(String[] args) { int num[]= {9,8,7,6,5,4,3,2,1}; int temp = 0; for(int i = 0;i<num.length-1;i++) { for(int j = 0;j<num.length-i-1;j++) { if(num[j+1]<num[j]) { temp = num[j+1];原创 2022-03-08 15:21:49 · 53 阅读 · 0 评论 -
递归问题——最大公约数
最大公约数import java.util.Scanner;public class 最大公约数 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println(f(scanner.nextInt(),scanner.nextInt())); } static int f(int i,int j) { if(i<j) { i =原创 2022-03-07 18:34:49 · 79 阅读 · 0 评论 -
递归问题——汉诺塔
汉诺塔**移动次数为:2^n - 1算法分析(1) 把n-1个盘子由A 移到 B; (2) 把第n个盘子由 A移到 C; (3) 把n-1个盘子由B 移到 C;从这里入手,在加上上面数学问题解法的分析,我们不难发现,移到的步数必定为奇数步: (1)中间的一步是把最大的一个盘子由A移到C上去; (2)中间一步之上可以看成把A上n-1个盘子通过借助辅助塔(C塔)移到了B上, (3)中间一步之下可以看成把B上n-1个盘子通过借助辅助塔(A塔)移到了C上;**pu原创 2022-03-07 18:33:40 · 64 阅读 · 0 评论 -
递归例题1
第一题 递归求数组和public class 递归求数组和 { public static void main(String[] args) { int arr[] = {1,2,3,4,5}; int len = arr.length;//len的值为5 int res = f(arr,len); System.out.println(res);} static int f(int arr[],int len) { if(len == 1) { return arr[0]原创 2022-03-07 18:32:06 · 86 阅读 · 0 评论