![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
BorisLiu725
无简介
展开
-
合并K个元素的有序链表
合并K个元素的有序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解法一:分治package mainimport "fmt"//Definition ...原创 2020-09-12 10:15:24 · 90 阅读 · 0 评论 -
快排算法实现java
package sortDmeo;import java.util.Arrays;/** * Created by BorisLiu on 2019/11/29 */public class QuickSort { public static void QuickSorted(int[] array,int start,int end){ if (star...原创 2019-11-29 16:45:28 · 247 阅读 · 2 评论 -
堆及堆排序java版
文章目录1.什么是完全二叉树2.堆(最大堆)3. 堆排序1.什么是完全二叉树(1)叶子结点在n层或者n-1层(2)从最左端开始2.堆(最大堆)(1)完全二叉树(2)parent > childs比如:但是可能有些结构不满足堆的特性,比如:4<10,我们就需要调整成堆。heapify操作:以i位置结点为parent去调整,使其满足堆的特性相应的代码: /**...原创 2019-10-25 11:48:12 · 196 阅读 · 0 评论 -
二叉树(创建,节点个数,高度,遍历)
二叉树的基础 今天学习了二叉树,有点膨胀,赶紧写个博客记下来,不然又忘记了。直接在代码里面解释吧。。。package BinaryTreeText;import java.util.Stack;/** * 二叉树 * */public class BinaryTree { // 根节点 private TreeNode root; ...原创 2018-07-22 20:02:17 · 1088 阅读 · 0 评论 -
二叉树的创建(前序创建法)
前序法二叉树的结点域参考:https://blog.csdn.net/qq_41044665/article/details/81157960 /***先补成一个完全二叉树 * 采用前序创建 * a * b c * d e ...原创 2018-07-22 23:23:52 · 1401 阅读 · 0 评论 -
二叉搜索树
二叉搜索树的创建TreeNode 的定义在下面,把主要代码写在显眼的位置了package BinaryTreeText;/** * * 二分查找树的构建 * * */public class SearchBinaryTree { private TreeNode root; private TreeNode parent; public Se...原创 2018-07-22 23:34:03 · 155 阅读 · 0 评论 -
Dijstra(单源最短路径)
注意:在运用该算法之前你必须得先有一个图。一、图图的创建我就......完全是抄袭别人的图了。为了测试效果package BinaryTreeText;import java.util.LinkedList;/** * 图的创建-->邻接矩阵 * * */public class Graph { private int vertexSize; //...原创 2018-08-03 14:34:45 · 314 阅读 · 1 评论 -
二叉树的操作(C语言版)
先看看运行效果吧: 以下为代码部分*******************************************************(一)准备工作因为二叉树的一些操作会用到栈和队列的一些知识,所以。我先把我用到的栈和队列的知识先写在前面(循环队列和一个顺序栈)下面是头文件,以及一些类型定义#include<stdio.h>#include&l...原创 2018-11-05 17:17:38 · 260 阅读 · 0 评论 -
尺取的用队列比较好理解吧!
A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length ...原创 2019-02-18 00:19:20 · 121 阅读 · 0 评论 -
矩阵连乘问题---动态规划
/**矩阵连乘法问题 (动态规划)A1 A2 A3 A4矩阵 m*n 5*4 4*3 3*6 6*2合理的位置添加括号能使乘法次数减少只有p[0]存储的是行的位置1~n存储的分别是矩阵1~n的列的位置因为他们的行就是前一个元素的值 p[0] = 5p[1] = 4p[2] = 3p[3] = 6p[4] = 2 */#include<stdio....原创 2019-03-21 13:51:55 · 292 阅读 · 1 评论 -
克鲁斯卡尔算法(最小生成树)
/** * * * */public class GraphKruskal { /** * 首先的先将路径排序最从到大 * 然后算法筛选 * */ private Edge[] edges; // 边的集合 private int edgeSize; // 边的总数 public GraphKruskal(int edge...原创 2020-09-12 10:29:34 · 98 阅读 · 0 评论 -
图
图的一些知识的整理import java.util.LinkedList;/** * 图的创建-->邻接矩阵 * * */public class Graph { private int vertexSize; //顶点数量 private int[] vertexs; // 结点数组(存储每一个结点的编号) private int[][] m...原创 2020-09-12 10:28:55 · 106 阅读 · 0 评论 -
1~n的全排列(深度优先搜索dfs)
#include<stdio.h>/* 变量说明:a[]-->相当于一个盒子 book[]-->用于标记 n-->1~n个数的全排列 */int a[10],book[10],n;void dfs(int step){ if(step>n){ // 退出条件 当盒子数 > n时 for(int i=1;i...原创 2018-06-03 11:32:17 · 306 阅读 · 0 评论 -
c语言实现数组扩容malloc + 指针
// malloc + 指针 实现数组扩容 输入1703时输入结束 #include<stdio.h>#include<string.h>#include<stdlib.h> char *enBigArray(){ int len = 10; // 默认初始化数组长度为10 int i=0; int num=0; int *p= (int ...原创 2018-06-03 11:52:24 · 8481 阅读 · 3 评论 -
插入排序
之前对插排有一点点误解。。。然后总结一下主要思想:(1)如果数组中有一个元素那么这个元素本身就是有序的 (2)然后从第二个元素开始,从后往前便利,找到比它(待插入数)大的就将那个数后移, 比它小的就是我们要找的插入的位置啦~然后插入(3)循环(2)就是ok啦~思想是不是很简单,...原创 2018-06-10 15:21:50 · 92 阅读 · 0 评论 -
归并排序
归并排序的主要思想:(1)将一个完整的数组一直分啊分,分成一个个小数组,分到每个数组只有一个元素它就自然有序了(2)然后再将这些数组合并成一个数组总的来说就是 分治 + 合并我们来看看代码吧!/** * 归并排序(分治 合并 思想) * * * */ public static void MergeArray(int[]array,int lef...原创 2018-06-10 15:47:48 · 92 阅读 · 0 评论 -
1~n全排列 ---深度优先搜索
由于要有一个比赛,补补算法吧...package 万能的搜索;import java.util.Scanner;/* 深度优先搜索 * 1-n的全排列(相当于将1~n不同的牌放进不同的盒子里面-->1~n编号的盒子里面) * void dfs(int step){ * (1)判断边界 * (2)尝试每一种可能for(int i=1;i<=n;i++){(3)继...原创 2018-06-28 15:45:43 · 373 阅读 · 0 评论 -
深搜最短路径
package 万能的搜索;import java.util.Scanner;/** * 深搜最短路径 * * * */public class Demo02 { static int[][] a; static int[][] b; static int min,q,p,m,n; public static void dfs(int startx,int st...原创 2018-06-28 18:45:37 · 460 阅读 · 1 评论 -
java实现最短路径的搜索【转】
转载一篇网上写的很好的。。https://www.cnblogs.com/jkavor/p/7404616.html广度优先算法Java实现以及最短路径搜索广度优先算法的步骤:1.选定一个起始节点;2.以选定节点为中心,所有与该节点相邻节点为备选节点(其中,在之前已经访问过的节点不得再纳入相邻节点),并将这些备选节点放入一个先进先出队列中,;3.依次取出先进先出队列中的节点,并求得该节点的相邻节点...转载 2018-07-15 20:29:20 · 1062 阅读 · 0 评论 -
广度优先搜索--java
看了网上别人的代码。。。自己模仿着敲了一边package 万能的搜索;import java.util.LinkedList;import java.util.Queue;/* * 从左上角到右下角,最短路径; * 广度优先搜索 * * */ public class BFS { /***重要组成-方向****/ int[][] direct = {{-1,...转载 2018-07-15 20:30:45 · 264 阅读 · 0 评论 -
BFS--输出路径【转】
package 万能的搜索;import java.util.LinkedList;import java.util.Queue;/* * 输出最短路径 * * */public class BFSround { int[][] direct = {{1,0},{-1,0},{0,1},{0,-1}}; int[][] book = new int[4][4]; ...原创 2020-09-12 10:25:41 · 122 阅读 · 0 评论