![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
瓜皮佳ԅ(¯ㅂ¯ԅ)
我已经是个大孩子了,该自己起来改bug了
展开
-
算法——插入排序与选择排序
一、插入排序<1>、直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列思想十分简单,算法实现如下: //直接插入排序 越有序插入越快 //将每一个数与前面所有排好序的数字相比较,如果大了 直接放入即可 public static void in...原创 2019-05-05 21:15:33 · 127 阅读 · 0 评论 -
单链表解析一
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:单向、双向带头、不带头循环、非循环下面将介绍最常用的三种第一种 无头单向非循环的单链表:无头单向非循环单链表如上图所示,存有数据以及指向下一个数据的指针,具体代码实现如下:(1).先定义单链表内每一个节点的属...原创 2019-04-26 17:59:47 · 169 阅读 · 0 评论 -
算法——利用递归和链表的归并排序
归并排序的思想算法就是假设有两个有序的数组,那么我们需要做的就是将这两个有序的数组排列成一串有序的数组,重点是两个数组已经排好序的。那么首先为了方便理解我们先引入一段例子,就是看看假设一组数组中含有两组有序数组我们应该怎样排序如上图,此时一组数组中有两个有序段,那么我们首先能想到的就是将这两个有序段分开,既然是要用到栈,那么我们很容易就能想到,将这两个有序段分别用两个栈来储存 Arr...原创 2019-06-12 18:23:56 · 307 阅读 · 0 评论 -
算法——冒泡排序
冒泡排序也可以称石沉大海法,是目前最基础的集中排序算法之一,总体过程可由以下图概括那么如何用代码来实现这一趟冒泡排序呢 for(int i=0;i<j-1;i++){//一趟冒泡排序 if(array[i]>array[i+1]){ int tmp=array[i]; array...原创 2019-06-12 23:52:38 · 168 阅读 · 0 评论 -
算法——利用递归做堆排序
要想学会堆排序,就要知道什么是堆。堆,分为大根堆和小根堆,学过数据结构的人都知道二叉树,而堆就类似于数据结构中的完全二叉树以上就是一颗完全二叉树,怎么插入才能让他插入数据以后依旧是一棵完全二叉树呢?如下图按照顺序依次往右插入,这样依次插入,才可以保证这棵树是完全二叉树那么如何调整这棵二叉树调整成堆呢?大根堆,也就是父节点永远大于子节点,知道这个概念,就很好调整像以上这种调整,将1...原创 2019-06-11 22:50:18 · 1410 阅读 · 0 评论 -
二叉树的前中后序遍历(递归+非递归)
首先来讲一下前中后序遍历的概念不讲那么官方,其实就我个人的理解以及看大佬的视频和帖子,“前中后”这个概念就是针对根节点的;然后牢记一句废话“左边永远在右边的左边,右边永远在左边的右边”,就可以完美玩转前中后序这种基础的二叉树遍历,举个栗子~前序:根->左->右 -----------> 根节点在前,左在左,右在右中序:左->根->右 ------...原创 2019-07-20 15:18:43 · 76 阅读 · 0 评论 -
leetcode&&牛客二叉树集锦
一、public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q != null) { //q、p不同,则直接返回false return false; } if(p != null && q == null)...原创 2019-07-26 23:46:41 · 120 阅读 · 0 评论