
数据结构与算法
学习真是太快乐了呀
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java数据结构与算法---线性表(数组存储)
Java数据结构之线性表最近在学Java语言,连着数据结构等课程一起学习,这里就作为自己记录学习过程的地方。希望以后能带来更多、更好、更有水平的博客分享给大家。实现结果:/* * 使用数组实现的线性表 * @author join */public class arrayADT { private Object[] entry; private int length; pri...原创 2019-04-22 22:09:24 · 309 阅读 · 1 评论 -
Java数据结构与算法---二叉树
不得不说二叉树很容易把人搞晕,这两天一直在学习探索二叉树。看起来挺简单的内容,实际上实现起来真的不是那么容易,更何况要达到熟练运用就更难了。路漫漫其修远兮。先把实现的内容分享出来吧,明天继续研究。这部分内容包括:二叉树的实现、前序,中序,后序遍历二叉树的递归算法。后面会继续实现关于树的相关算法。实现的二叉树结构长这样:实现二叉树包含三部分代码,分别是二叉树的节点类、二叉树类、创建二叉树及测...原创 2019-04-30 21:25:05 · 441 阅读 · 0 评论 -
希尔排序
package 排序;public class 希尔排序 { // public static void shellSort(int[] array) { for(int delta=array.length/2;delta>0;delta/=2) for(int i=delta;i<array.length;i++) { int temp ...原创 2019-05-05 17:58:16 · 116 阅读 · 0 评论 -
选择排序
选择排序的思想:对数组中的元素进行多次遍历,每经过一次循环,选择最小的元素并把它放到靠近数组最前端的位置。下面给出实现代码:package 排序;/* * 选择排序,时间复杂度是 O(N^2) */public class 选择排序 { public static void selectionSort(int[] array) { for( int i=0;i < a...原创 2019-04-25 10:13:59 · 137 阅读 · 0 评论 -
直接插入排序
插入排序思想:把数据分为有序区和无序区,把无序区里的元素一个一个插入到有序区中,从而扩大有序区,直到有序区包含所有的元素。package 排序;import java.util.Arrays;/* * 插入排序:直接插入排序 + 折半插入排序 + 希尔排序 * 算法分析: * 最好情况:关键字在记录序列中正序,比较n-1次,移动0次 * 最坏情况:关键字在记录序列中反序,比较n(n-...原创 2019-04-29 10:08:54 · 151 阅读 · 0 评论 -
快速排序
以前以为数据结构很难,实际上确实很难。。记得上一次面试的时候,面试官问我一个很简单的排序算法的时间复杂度,我都答不上来,后来面试就挂了。再后来,和面试官聊了一会,他告诉我基础知识非常重要,不要一味的追求学习各种语言或者其它,这些只不过都是基础的一种实现而已。所以说,如果想在计算机方面有所发展,数据结构、计算机网络、操作系统都是很重要的。怎么说呢,就像武林高手的“内功”吧。昨天学习并实现了交换排序...原创 2019-04-29 09:04:10 · 330 阅读 · 2 评论 -
Java数据结构与算法---线性表(链表存储)
今天早上起来又接着用链表实现了线性表的部分功能,实现的结果如下:package 线性表;public class ListADT { /* * 使用链表实现线性表 * 定义链表的节点类 */ //ListNode list = new ListNode();//创建一个节点的引用,然而这样引用是错误的,每次都有一个0 private ListNode list;//链表头节点...原创 2019-04-24 11:24:58 · 243 阅读 · 0 评论 -
数据结构与算法---平衡二叉树(ALV树)
今天晚上学习了平衡二叉树(左右子树的高度差的绝对值小于等于1),还是稍微有点复杂。通过下面四种旋转方法,使得二叉树达到平衡:LL型RR型LR型RL型接下来是用Java语言实现ALV树及其旋转,直接放出代码吧。package 树ALV;public class Node { int value; Node left; Node right; ...原创 2019-05-03 21:05:13 · 653 阅读 · 0 评论 -
Java数据结构与算法---链表
学计算机的都知道,数据结构实在是太重要了,我呢,大三,计划大四找软件开发的工作。所以这学期一直在学Java,同时也在学计算机的其它基础课程。链表这里卡了我一两天吧(时间挺长的其实),原理容易理解,可是用Java语言操作的时候就给我整的直接懵逼。终于,在今天晚上突然就明白了是怎么一回事。所以写一篇博文分享一下。一是记录学习过程,二呢,希望能给其它新手提高微不足道的帮助。此外,我的程序都是在编译器里...原创 2019-04-23 22:29:08 · 235 阅读 · 0 评论 -
冒泡排序
今天早上学习实现了冒泡排序,算法思想在代码有注释import java.util.Arrays;/* * 比较相邻的元素,如果第一个比第二个大,就交换它们两个 * 对每一对相邻元素做相同的工作,最后的元素将会是最大的元素 * 即把最大的元素冒泡移动 */public class 冒泡排序 { public static void BubbleSort(int[] array) ...原创 2019-04-28 11:48:17 · 168 阅读 · 0 评论 -
Java数据结构与算法---队列(链表存储)
掌握了两种存储结构之后,其它的数据结构只是以这种存储结构为基础,实现逻辑上的数据结构。数组操纵的是索引,链表操纵的是指针!实际上栈和队列是“一样”的。下面是以链表为存储结构实现的队列以及相关操作:节点类:package 队列;//构造链表的节点类public class Node { public Object data; public Node next; //无参数时的构...原创 2019-05-01 23:00:12 · 284 阅读 · 0 评论 -
Java数据结构与算法---队列(数组存储)
数组作为存储结构实现队列,这个还是比较简单的。package 队列;/* * 此队列使用数组作为存储结构 * 操作有入队、出队、判断是否为空 * @author 此间 * @time 2019/4/21 22:14 */public class ArrayQueue { int[] elements; public ArrayQueue() { elements = new...原创 2019-05-01 22:52:49 · 264 阅读 · 0 评论 -
Java数据结构与算法---栈(链表存储)
采用链表存储结构实现栈及其相关操作代码分为两部分,一部分是链表的节点类,另一部分是栈的实现。为了直观简便,我将测试方法和栈实现放在一起了。链表节点类package 栈;//构造链表的节点类public class Node { public Object data; public Node next; //无参数时的构造函数 public Node() { this(nu...原创 2019-05-01 22:30:58 · 447 阅读 · 0 评论 -
Java数据结构与算法---栈(数组存储)
今天用Java实现了数据结构中的栈,学会了操纵栈的一系列方法。关于栈的相关内容这里不做介绍,我只是将自己实现的代码分享出来,记录自己的学习进度同时希望能对其他朋友具有借鉴作用。以下是用数组存储实现栈package 栈;/* * 顺序栈采用 数组 存储 * 操作包括压栈、出栈、取栈顶元素等 */public class ArrayStack { //栈的底层采用数组存储数据 int...原创 2019-05-01 22:25:03 · 536 阅读 · 0 评论 -
八大排序算法详解(Java语言实现)
概述因为健忘,加上对各种排序算法理解不深刻,过段时间面对排序就蒙了。所以决定对我们常见的这几种排序算法进行统一总结,强行学习。首先罗列一下常见的十大排序算法:直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序我们讨论的这八大排序算法的实现可以参考我的Github:SortAlgorithms,其中也包括了排序测试模块[Test.ja...转载 2019-06-16 15:17:37 · 400 阅读 · 0 评论