
算法
约克君
学无止境
展开
-
算法整理03——二叉树(前序中序后续、各种二叉树判别方法)
前序:中左右;中序:左根右;后序:左右中递归求解和非递归求解(利用到树的广度优先搜索和深度优先搜索)import java.util.Stack;/** * 实现二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式 * @author York * */public class Code_01_PreInPosTraversal { //定义二叉树 public ...原创 2018-08-17 21:55:47 · 199 阅读 · 0 评论 -
算法整理04——贪心算法和优先级队列使用。
贪心思想就是保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。不一定要证明最后就是最优的。第一个问题一块金条切成两半, 是需要花费和长度数值一样的铜板的。 比如长度为20的金条, 不管切成长度多大的两半, 都要花费20个铜板。 一群人想整分整块金条, 怎么分最省铜板?例如,给定数组{10,20,30}, 代表一共三个人, 整块金条长度为10+20+30=60. 金条要分成10,2...原创 2018-08-18 10:15:45 · 572 阅读 · 0 评论 -
算法整理05——Java图的概念和BFS&DFS
1、图是由顶点集合以及顶点间的关系集合组成的一种数据结构。Graph = (V,E) V是顶点的又穷非空集合;E是顶点之间关系的有穷集合,也叫边集合。2、图的表示方法2.1、邻接矩阵和邻接表,这两种方法常在概念里面比较多,2.2、实际笔试中,经常用一个多行三列的矩阵,每一行是一条边,经常是第一列代表该边的权值,第二列是边的起点,第三列是边的终点to。2.3、生成图一般用四个类,节...原创 2018-08-18 16:35:31 · 131 阅读 · 0 评论 -
算法整理01——排序算法
最近想整理整理一下所学的一些东西,仅仅总结自己所学的,内容参考了网上和一些视频,尽量给出原文链接。排序算法1、冒泡排序:思想:在数组中,从第一个数组开始遍历,每一次遍历确定最大一个数。显然时间复杂度为O(N^2)2、选择排序:思想:遍历数组,找到数组中每一个位置的值,如第一个位置就是最小的,遍历数组,找到最小的放在第一个位置。时间复杂度为O(N^2)3、插入排序:思想:类似打牌的时...原创 2018-08-17 19:19:33 · 115 阅读 · 0 评论 -
算法整理02——比较器
实现比较器有两种方法第一种、一些类自己实现Comparable,笔试用的较少;第二种、人为定义对类的比较。实现Comparator接口。举例 有三个学生 我自创了学术类,mian生成了三个学生A\B\C要将他们按照id排序,在重新compare方法中,只要负数就放放前面,程序会自动帮你生成的。import java.util.Arrays;import java.util.Co...原创 2018-08-17 20:33:44 · 553 阅读 · 0 评论