
数据结构
gottawangzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Dijkstra算法
做金山WPS笔试的时候遇到了一些最短路径的变形题,于是自己重新复习一遍Dijkstra算法。这也是我第一次主动自己写算法详解。首先要先定义好图中的每个边。// 代表着从v-w的一条边 public class DirectedEdge { private int v;private int w;private double weight;//v 代表着一条边的出度点,w代表着一条边的入度点...原创 2018-05-26 23:59:50 · 225 阅读 · 0 评论 -
KMP算法详解 (转载)
最近在刷题的时候遇到了KMP 算法的一些题目,回想起来自己关于数据结构和算法的知识内容都已经忘了。于是打算重新复习一遍。就从KMP算法开始吧。因为自己水平还不够,也讲不清楚。于是就从网上转载了两篇博文。原文链接 https://blog.youkuaiyun.com/v_JULY_v/article/details/6545192出处 http://blog.youkuaiyun.com/v_JULY_v 。KMP 构建...转载 2018-05-23 12:59:32 · 218 阅读 · 0 评论 -
红黑树的高度
在复习红黑树的特性时,产生了这样的一个疑问,红黑树的高度是多少呢?在Java8,HashMap所使用的拉链法散列表中,如果储存元素的键值与原来储存元素的键值发生了Hash冲突,如果val值不一样,会将该元素存放在红黑树的数据结构中。 红黑树查找一个元素所需要的时间最坏是2lgN,插入一个元素最坏情况所需要的时间是2lgN,查找命中所需要的平均时间是lgN,插入一个元素所需要的平...转载 2018-08-14 21:41:07 · 11618 阅读 · 2 评论 -
排序算法之--选择排序
为了准备秋招 从今天开始复习数据结构。排序是数据结构最为重要的一部分,计算机系统都实现了各种排序算法以供系统和用户使用。 选择排序的核心思想是这样的,先找到数组中最小的一个元素,和数组的第一个元素交换位置,其次在剩下的数组中找到最小的元素,把它和位于数组第二位的元素交换位置。如此往复,知道将整个数组都进行了排序。这种排序方法叫做选择排序。以下是算法实现。 public clas...原创 2018-08-12 17:22:09 · 209 阅读 · 0 评论 -
排序算法之--插入排序
插入排序和选择排序一样,当前索引左边的元素都是有序的。但是它们最终的位置还是不确定。为了给最小元素空出位置,它们可能会被移动。但是当前索引到达最右边的时候,整个排序就完成了。 和选择排序不一样的是,插入排序取决于输入中元素的初始顺序。例如,对一个很大的且其中元素已经有序的数组进行排序会比对随机顺序的数组或者是逆序数组进行排序要快得多。以下是算法实现。 public c...原创 2018-08-12 17:39:05 · 176 阅读 · 0 评论 -
排序算法之--归并排序
归并排序就是将两个有序的而数组归并成一个更大的有序数组。归并排序的特点是它可以保证任意长度为N的数组排序所需的时间和N*logN成正比;它的主要缺点是它所需要的额外空间也和长度成正比。此外归并排序也是一种很稳定的算法。不管传入的数组顺序怎么么样,它的事件复杂度都是N*logN。 下面直接放上代码: package sort; public class MergeSort { ...原创 2018-08-12 20:09:30 · 250 阅读 · 0 评论 -
排序算法之--快速排序
快速排序是一种分治的排序算法,它将一个数组分为两个子数组,将两部分独立的进行排序。快速排序和归并排序是互补的,归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序将数组排序的方式是当两个子数组都有序时整个数组都自然有序了。在归并排序中一个数组被分为两半,在快速排序中,切分的位置取决于数组的内容。 下面直接上代码: public clas...原创 2018-08-12 20:38:39 · 166 阅读 · 0 评论 -
找出有环单链表的入口节点
这个题比较经典 ,使用两个指针去解决。一个快指针,一个慢指针。快指针每次走两步,慢指针每次走一步。如果两个指针相遇,那么这个链表是有环的。但是关键问题是链表环的入口节点在哪里呢? 数学证明贴上来:设置整个链表的节点个数为N,环的节点个数为L,从链表头节点到环的入口节点距离为M,下文记作M节点。 假设慢指针走了k步之后两个节点相遇,将相遇的节点记作k节点。可以证明 0<...原创 2018-09-07 22:16:18 · 526 阅读 · 0 评论