算法
LXR_Anran
这个作者很懒,什么都没留下…
展开
-
算法-深度优先搜索(dfs)
深度优先算法(dfs) 概念:在进行某种查找的时候,当一个节点的下挂节点有多中场景时,西安选择一种场景往下走,下面节点依旧按照这种思路,如果到达末尾节点时任务满足结束条件,则返回上一节点执行其他场景,直到发现满足结束条件或者所有分支场景都覆盖一遍时结束查找。 使用的方式是递归,需要确认结束标识以及保证回退上一节点时内存数据不应该发生变更 题:9*9数独的计算 package com...原创 2020-04-29 00:09:27 · 205 阅读 · 0 评论 -
算法-广度优先搜素(bfs)
广度优先算法(bfs) 概念:在进行图标搜素的时候,使用队列的原理,获取队列中首个节点,获取首个节点的下挂节点,此时首节点出队列,并标识该节点为已经处理,将查找到的下挂节点入队,返回执行队列首节点出队和下挂节点入队操作,直到满足条件或者队列为空时结束。 举例:有一个全二叉树,每一个节点都有一个value,请获取node1到某个最近节点值是10的路径,全二叉树如下图所示: 如果使用广度优先...原创 2020-05-01 17:24:16 · 301 阅读 · 1 评论 -
算法-动态规划
动态规划: 概念:问题的最优解如果可以由子问题的最优解推导得到,则可以先求解子问题的最优解,在构造原问题的最优解;若子问题有较多的重复出现,则可以自底向上从最终子问题向原问题逐步求解 特点: 把原始问题划分成一系列子问题; 求解每个子问题仅一次,并将其结果保存在一个表中,以后用到时直接存取,不重复计算,节省计算时间 自底向上地计算。 整体问题最优解取决于子问题的最优解(状态转移方程)(...原创 2020-05-02 12:04:06 · 201 阅读 · 0 评论 -
算法-排序
冒泡排序定义:每一个元素与其他元素逐个进行大小对比,如果不满足顺序,连个元素进行位置交换,从而实现逐渐实现排序 题目:输入n个整数,然后使用冒泡排序算法对n个整数进行从大到小的排序 package com.anran.example.test; import java.util.Scanner; public class Test5 { /** * 场景:输入n...原创 2020-04-25 21:16:00 · 225 阅读 · 0 评论 -
算法-排列组合
排列定义:从n个元素中获取m(m<=n)个元素,并进行排序(假定元素各不相同) ps:获取第一个元素有n种可能性,获取第二个元素有(n-1)种可能性,当需要获取第m个元素的时候时有(n-m+1)种可能性 计算方式: 其余概念: 0!=1 n=m时是全排列 组合定义:从n个元素中获取m(m<=n)个元素,这m个元素不用进行排序(假定个元素各不相同) ps:上面排列...原创 2020-04-25 16:10:22 · 261 阅读 · 0 评论