![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 71
upupgogogo
这个作者很懒,什么都没留下…
展开
-
编写简易版的单链表和基于单链表数组编写hashset表
1.简易版LinkedList的实现package com.upupgogogo;/** * Created by upupgogogo on 2018/3/20.下午1:19 */public class Node<T> { public T data; public Node<T> next; public Node(T date...原创 2018-03-21 15:15:10 · 283 阅读 · 0 评论 -
邻接矩阵来实现带权图结构,并通过Dijkstra算法寻找最短路径
1.邻接矩阵来实现带权图结构package com.upupgogogo;/** * Created by upupgogogo on 2018/3/26.上午11:45 */public class AdjMatrixGraph<T> { protected SeqList<T> vertexlist; //顺序表储存图的定点集合 pro...原创 2018-03-27 15:06:16 · 1675 阅读 · 0 评论 -
队列的底层设计以及时间复杂度的优化
1.基于数组的实现队列的基本概念就是先进先出,但是如果采用数组来实现就会出现每次执行一次dequeue会把数组里面的每个元素都会移动一次,移动n次的时间复杂度就是O(n^2),我们想要优化它的dequeue操作,可以定义两个变量来记录它的栈顶和栈尾来进行入队和出队操作/** * Created by upupgogogo on 2018/4/26.下午6:02 */public class ...原创 2018-05-10 19:39:33 · 1036 阅读 · 1 评论 -
数据结构--二分搜索树(BST)
1.二分搜索树的简单介绍一般来讲,二叉树的存储数据的基本结构是封装一个Node节点,保存左右两个孩子的node变量,以及一个泛型数据,二分搜索树需要泛型类型实现Comparable接口(必须保证左子树的数据比右子树大)/** * Created by upupgogogo on 2018/5/30.上午11:38 */public class BST<E extends Compar...原创 2018-05-30 15:22:59 · 272 阅读 · 0 评论 -
java八大排序----归并排序
1.归并排序的流程先通过二分法把十个元素的数组依次对半分,最后整个流程结构变成了一个线段树的结构。当到达不可分的区间后停止然后与同一层区间开始排序,是一个从底向上的排序过程2.归并排序的时间复杂度由于二叉树每一层的排序复杂度都是O(N)级别,所以整个排序的复杂度是O(NlogN) O(logN)表示整个二叉树的高度3.代码设计import java.util.Arrays...原创 2018-07-17 11:56:11 · 213 阅读 · 0 评论 -
java八大排序----快速排序
1.快速排序的流程找到数组的第一个元素,然后和所在区间相比较,把这个元素放在一个恰当的索引位置,使数组左边的元素比它小,右边的元素比它大,然后把剩余的两个区间依次这样递归下去2.快速排序的复杂度每一次的操作都是树形的结构,因此每一层都是O(N),则整个复杂度为O(NlongN),如果数组本身就是顺序表,复杂度讲达到O(N^2)级别3.代码设计sort()定义一个j,...原创 2018-07-18 21:33:14 · 553 阅读 · 1 评论 -
java八大排序----堆排序
1.堆结构堆结构2.堆排序O(nlogn)/** * Created by upupgogogo on 2018/7/14.下午2:11 */public class HeapSort { private int tree[]; private int size; public void heapSort(int[] nums){ tree =...原创 2018-07-15 23:46:23 · 185 阅读 · 0 评论 -
三路快排与对撞指针
1.三路快排对比快速排序的优势相对于快速排序,三路快排的优势是在于能够减少重复元素操作次数2.三路快排主要的思路定义lt,gt两个初始变量,[lt,gt]表示该区间的元素等于v通过遍历每个元素得到lt,gt的最终变量值3.代码设计 private static void quick(Comparable[] nums, int l, int r){ ...原创 2018-07-26 23:08:33 · 417 阅读 · 0 评论 -
滑动窗口和查找表的使用
1.滑动窗口1.1LeetCode209给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例: 输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。暴利解法,我们会分别找出所有连续子数组的和,...原创 2018-08-20 17:09:25 · 407 阅读 · 0 评论