![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 80
数据结构与算法
乌龙茶不是可燃的嘛
这个作者很懒,什么都没留下…
展开
-
二分查找与实例分析
二分查找二分查找思路分析1.首先确定该数组的中间的下标mid = (left + right)/2mid = left +(right -left)/22.然后让需要查找的数findval和arr[mid]比较findval > arr[mid] 说明你要查找的数在mid的右边,因此需要递归的向右查找findval < arr[mid] 说明你要查找的数在mid的左边,因此需要递归的向左查找findval == arr[mid] 说明你要查找的数找到了,返回结束递归的条件:1原创 2020-07-30 21:55:00 · 179 阅读 · 0 评论 -
树与二叉树与二叉平衡排序树(下)
二叉排序树什么是二叉排序树?对于任意一个节点,左边比自己小,右边比自己大的树就叫做二叉排序树让我们用代码构建一个二叉排序树private static int count = 0;public static TreeNode addMapNode(TreeNode root,TreeNode newNode){ if (root == null)return newNode; if (root.val == newNode.val)return root;原创 2020-07-25 14:07:36 · 329 阅读 · 0 评论 -
树与二叉树与二叉平衡排序树(上)
二叉树与二叉平衡树树简单介绍一下树度树的度:找到分支最多的节点,这个节点有多少分支,这棵树的度就为几。分支最多的节点为D,它有三个分支这棵树的度为3深度树的深度就是树的层数深度为4根节点与叶子节点叶子节点:没有子节点的节点这棵树的根节点是A叶子节点为E,F,G,H二叉树树的度最高不超过2的树,称为二叉树满二叉树如果一个节点有子节点,那么他一定有两个节点并且叶子节点都在树的最后一层完全二叉树除了最后一层节点是满的,最后一层的节点都集中在左侧满二叉树是完全二叉树二叉树原创 2020-07-25 13:00:10 · 616 阅读 · 0 评论 -
大数加法
大数加法在Java中如果我们想算很大很大的数相加等于多少的时候,我们发现没有一种数据类型能够装下他们,所以我们只能用String来接纳他们,但是String是无法做加法的,他的 + 只是单纯的拼接字符串 String a = "10000000004564564645446464644"; String b = "41694424644544545456444546444"; System.out.println(a+b); 1000000000456456464544646464原创 2020-07-16 21:51:47 · 107 阅读 · 0 评论 -
冒泡,快速,归并,快速排序算法
排序算法排序算法,字面意思上来说,就是用来排序的算法,我主要从简单到复杂介绍几个常见的排序。首先引入两个问题,给我们两个已经排好序的数组和链表我们要怎么把他们合并成一个数组或者链表int[] arr1 = new int[]{3,1,9,7};int[] arr2 = new int[]{6,10,16,50};时间复杂度和空间复杂度时间复杂度假设我们有个数组,我们要查找数组中是否存在某个数如何来衡量写的算法效率更高呢,可以用时间吗?是不可以的。所以我们引入时间复杂度的概念。每访问一个元原创 2020-07-16 21:32:58 · 369 阅读 · 1 评论 -
简单封装栈与队列并用栈来实现队列
栈与队列栈与队列都是比较基础的数据结构栈栈的特点是先进后出,他的底层是由数组实现的我们来做一个简单的栈的封装class MyStack{int[] data;int top = 0 ;public MyStack(int size){ this.data = new int[size];}//放入的方法public void push(int val) throws Exception { //有一种情况无法再放入了 if (top == this.data.l原创 2020-07-15 17:04:41 · 153 阅读 · 0 评论 -
线性数据结构之数组与链表
数据结构什么是数据结构?什么又是算法?数据结构就是用来装数据的容器,而算法是用最科学,最合理的方法来操作这个容器里边的数据。线性数据结构线性数据结构是一维数据结构特点: 数据呈线状排列数组数组的特点* 物理空间上是连续的。* 优点:查找的时候效率更高* 缺点:因为空间是连续的,所以当磁盘的空间碎片较多的时候,我们可能无法存入大数组,即使内存空间足够,也无法存储数组的遍历求和 //建立数组 int[] arr = new int[]{0,1,2,3,4,原创 2020-07-15 00:30:29 · 123 阅读 · 0 评论