----数据结构 (Java实现)
syrdbt
这个作者很懒,什么都没留下…
展开
-
快排Java代码实现(Quick Sort)
1. 快排算法思路基本思想:通过一趟快速排序将待排数组分割成独立的两份部分;其中一部分数组的值均比另一部分数组的值小,则可分别对着两部分数组继续进行排序,以达到整个序列有序。快排的平均时间复杂度为n*log(n),最坏的时间复杂度为n^2。一趟快速排序:首先先选一个值(通常选择数组第一个值)作为枢轴,然后按下述原则重新排列其余的值,将数组中所有小于枢轴的值放在枢轴前面,数组中所有...原创 2019-03-22 16:12:54 · 3522 阅读 · 0 评论 -
单链表 & 循环链表 Java 代码实现
单链表,用一组地址任意的存储单元去存放线性表中的数据元素。链表中的数据是以结点来表示的。结点的构成:元素(数据元素的映象) +指针(指示后继结点存储位置)。1.概述单链表,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的。结点的构成:元素(数据元素的映象) +指针(指示后继结点存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数...原创 2019-03-30 21:35:32 · 593 阅读 · 0 评论 -
归并排序(Merging Sort)学习和Java代码实现
1.归并排序“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。归并排序的基本思路:(1)假设初始序列有n个记录,则可以看成n个有序的子序列,每个子序列的长度为1。(2)然后两两归并,得到[n/2]个长度为2或1(n为奇数的情况)的有序子序列;(3)两个有序子序列不断归并,重复上一步...(4)最终得到一个长度为n的子序列。举一个归并的例子,相同颜色的值为一...原创 2019-04-20 14:48:29 · 255 阅读 · 0 评论 -
二叉树Java代码实现(Binary Tree)
二叉树:二叉树是一种树形结构,它的特点是一个结点至多有两棵子树,并且二叉树的子树有左右之分。1.二叉树的遍历二叉树遍历有三种方式:先序遍历、中序遍历、后序遍历。先序遍历:访问根节点、先序遍历左子树、先序遍历右子树。中序遍历:中序遍历左子树、访问根节点、中序遍历右子树。后序遍历:后续遍历左子树、后续遍历右子树、访问根节点。先序遍历,访问根节点、先序遍历左子树、先序遍历右...原创 2019-05-16 18:50:57 · 8916 阅读 · 0 评论 -
堆排序学习、Java代码实现
堆排序(HeadSort)只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。堆的定义:n个元素的序列 {k(1),k(2),... k(n)} ,当其满足k(i)<=k(2*i)&& k(i)<= k(2*i+1)或者k(i)>=k(2*i) && k(i)>= k(2*i+1),称这个序列为堆。i...原创 2019-07-03 19:55:08 · 265 阅读 · 0 评论 -
深度优先搜索(DFS) 学习、Java代码实现
深度优先搜索(DFS)的基本思想:从图中的某个顶点v出发,然后依次从未被访问的 v的邻接点开始深度优先搜索,直至图中所有和v路径相通的顶点都被访问,然后选择另外一个没有被访问的顶点开始深度优先搜索。1.概述深度优先搜索(DFS)的基本思想:从图中的某个顶点v出发,然后依次从未被访问的 v的邻接点开始深度优先搜索,直至图中所有和v路径相通的顶点都被访问...原创 2019-07-12 21:57:19 · 16996 阅读 · 7 评论