
java 算法
文章平均质量分 65
小魏苦练算法
这个作者很懒,什么都没留下…
展开
-
java算法----动态规划(1)
1.机器人行走问题2.两人博弈问题看上面这道题目,首先先用暴力递归的方法来写,暴力递归就是把机器人从m位置开始,经过k步的所有方法都列举出来,然后找出最终位置在p的点,数一数一共有多少这样的路径就是我们最终想要的答案。然后我们就开始自然尝试,会发现机器人在1位置的时候,其下一步只能去2号位置,当机器人到达n位置的时候,其下一步就只能去n-1这个位置,当机器人在其他位置的时候,可以往左走也可以往右走(自然尝试)。由这些想法之后我们就可以写出暴力递归的方法了。 public static..原创 2022-04-26 20:19:10 · 1026 阅读 · 1 评论 -
java---递归的理解到由递归引入动态规划
1.理解递归 1. 理解递归2 Fibonacci 递归写法3. 由暴力递归到动态规划 递归的过程很复杂,而且递归也很重要,它能够解决我们遇到的很多问题。所以理解递归很重要。再一个就是在学习算法的时候我们会遇见动态规划,直接解决动态规划对于大多数人来说都不太现实,而从暴力递归到动态规划就相对变得简单一点了。1.递归的理解...原创 2022-04-26 15:40:34 · 855 阅读 · 0 评论 -
java--数据结构 顺序队列和链式队列的建立及使用
顺序队列(循环队列):队列的特点是‘先进先出’。首先构建一个Object类型的数组,其类型由你的模板(<N>)决定,再设置两个“指针”(其本质就是两个变量,利用其加减完成对Object数组上取值删值的操作)------------base和top分别是"头指针"和“尾指针”。peek函数就是取出队列顶端元素,put是入队列操作,take是出队列操作,empty是判断队列是否为空。为何要用循环队列?因为队列是先进先出,当初队列后,从Object[0]到Object[base]都为空,造成了原创 2022-04-21 15:38:25 · 877 阅读 · 0 评论 -
java数据结构-----二叉树和利用二叉树排序
想要完成二叉树,就必须要先建一颗二叉树,那么该如何创建呢?有很多种方法,其一是利用广义表来创建,其二是利用当遇见空节点时将其赋值为某一元素如“*”,其三是利用二叉树的储存结构直接在主函数手动创建一个二叉树。今天我们就用第一种方法演示。第一种方法就是利用广义表,广义表储存就需要用到堆栈和压栈,还需要用一个标记flag(当其为true时处理左子树,当为false时处理右子树)。当遇见“(”时将标记flag=true,然后再堆栈(即将根节点放到栈顶);当遇见“,”时,说明这个时候要处理的是右子树,将标记fla原创 2022-04-18 22:17:10 · 648 阅读 · 2 评论 -
java 排序--冒泡排序,选择排序,归并排序 快速排序。
冒泡排序:冒泡排序很简单,就是想冒泡一样,让小的数或者大的数往上“冒泡”。(这个大多数人应该都会了,就不在多啰嗦了!)注意!冒泡排序之后,不改变相同数的相对位置不会改变,所以冒泡排序还是有一定的稳定性的。 public static void main(String[] args) { // TODO Auto-generated method stub int a[]= {3,5,8,2,0,5,6}; M_sort(a); System.out.println("冒泡排序后:..原创 2022-04-16 16:54:12 · 674 阅读 · 7 评论