数据结构和算法
wzx01234567890
这个作者很懒,什么都没留下…
展开
-
已知后序遍历,中序遍历,求层序遍历
思路 根据后续遍历中序遍历,确定根节点 确定中序遍历根节点的左右两边分别是左子树,右子树 递归求解左子树 递归求解右子树 最终生成一颗二叉树 package com.wuzhixin.client; /** * @author wuzhixin * @version 1.0 * @date 2020/2/29 18:23 * @desc */ import java.util.L...原创 2020-02-29 20:01:55 · 609 阅读 · 0 评论 -
二分归并排序
package com.wuzhixin.test; import java.util.Arrays; public class BinarySort { public static void main(String[] args) { int arr[] = {11, 33, 22, 4, 5, 3, 99, 65}; merge(arr, 0, ...原创 2019-10-03 22:30:47 · 989 阅读 · 0 评论 -
程序员必会十大算法-二分查找递归和非递归
就是依次和中间相比较,比中间大,往右边找,比中间小,往左边找(前提是有序) 比较简单 package com.wuzhixin.suanfa; /** * 吴志新 * 2019/9/23-15:18 * _23designpatterns **/ public class BinarySearch { public static void main(String[] args) ...原创 2019-09-23 16:03:51 · 135 阅读 · 0 评论 -
数据结构与算法之 图的深度优先和广度优先
图(无向图)的生成及深度优先遍历,及广度优先遍历 图的广度和深度优先遍历 用如下图来解决 图的创建: java代码: class Graph{ private int edgesNum; //边数 private char [] vertexs; //顶点 private int [][] weight; //描述两边是否联通 public Graph...原创 2019-09-22 18:58:09 · 381 阅读 · 0 评论 -
数据结构和算法之 最小生成树,普里姆算法
普利姆算法 最小生成树,修路问题,覆盖所有节点,但是路径修路最短 例如图片:求 abcdefg 城市修路能覆盖所有节点的最短路径 代码如下 感觉用贪心算法也能做 package com.wuzhixin.arithmetic; import java.util.Arrays; /** * 吴志新 * 2019/9/19-14:41 * _23designpatterns **/ pu...原创 2019-09-19 20:12:39 · 199 阅读 · 0 评论 -
数据结构和算法 之 二叉排序树的查找,删除,遍历,创建
二叉排序树的查找 首先二叉排序树,是将一个无序队列或者数组,循环创建后中序遍历形成有序。 依次和根节点比较,如果相等则返回,如果不相等,则判断左子树和右子树上的值 如果比左子树的值小,则进行左递归查找,如果比右子树的值大,则进行右递归查找。 二叉排序树的删除 分多种情况,如果删除的是叶子节点 则,先找到 parentNode,判断要删除的是左孩子还是右孩子 进行删除 //是叶子节点,再判断是...原创 2019-09-12 12:11:21 · 188 阅读 · 0 评论 -
数据结构和算法之二叉排序树
二叉排序树 ( Binary Sort Tree) 或者为空;或者是具有如下特性的二叉树: (1)若根的左子树不空,则左子树上所有结点的关键字均小于根结点的关键字; (2)若根的右子树不空,则右子树上所有结点的关键字均大于根结点的关键字; (3)根的左、右子树也分别是二叉排序树。 package com.wuzhixin.tree; import javax.xml.crypto.NodeSet...原创 2019-09-09 14:56:37 · 158 阅读 · 0 评论 -
数据结构与算法 之 插值查找
插值查找 插值查找,有序表的一种查找方式。插值查找是根据查找关键子与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率 插值查找: int mid = start + (end-start)*(targetValue-arr[start])/(arr[end]-arr[start]); 中间索引值 start表示数组的起始下标,en...原创 2019-09-05 15:45:26 · 162 阅读 · 0 评论 -
数据结构与算法 之 二分查找
二分查找 二分查找思想: 就是将要查找的目标数 和 数据中间的数进行比较 如果目标数比要查找的数小,则进行左递归,如果目标数比要查找的数大,则进行右递归。 直到找到目标数。 package com.wuzhixin.datastructrue; import java.util.ArrayList; /** * 吴志新 * 2019/9/5-8:42 * _23designpatterns...原创 2019-09-05 14:56:30 · 85 阅读 · 0 评论 -
数据结构之算法 - 快速排序
快速排序 快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,简而言之,就是一直将数据分成两部分,一部分比基准值大,一部分比基准值小,然后进行递归,退出递归循环条件后就变为有序的 java代码 package com.wuzhixin.dat...原创 2019-09-04 18:42:38 · 116 阅读 · 0 评论 -
数据结构与算法之 插入排序
插入排序 思路:插入排序属于内部排序方法,是对于已经排序好的元素的插入方式,找寻该元素的适当位置 假设第一个就是已经排好序的 序列 一共有n个数 那么排序一共有n-1次 例如 数组 【100 30 120 10】 一共要比较3轮排序 第一轮 【30 100 120 10】 第二轮 【30 100 120 10】 第三轮 【10 30 100 120】 package com.wuzhixin.da...原创 2019-09-03 19:48:25 · 84 阅读 · 0 评论 -
数据结构与算法之 选择排序
选择排序 思想:假定数组的第一个数为最小值,依次和和后面的数比较, 找到最小值的小标和值 ,然后和该数组的第(1,2,3…n)位交换 然后通过循环最终得到有序数组,思想很重要吧 package com.wuzhixin.datastructrue; import java.util.Arrays; /** * 吴志新 * 2019/9/3-9:55 * _23designpatterns...原创 2019-09-03 11:26:41 · 46 阅读 · 0 评论 -
数据结构与算法之 冒泡排序
冒泡排序 上图 package com.wuzhixin.datastructrue; import java.util.Arrays; /** * * 2019/9/2-21:16 * _23designpatterns **/ public class BubbleSort { public static void main(String[] args) { ...原创 2019-09-02 22:04:14 · 81 阅读 · 0 评论