
Java经典算法
God'sDarling
一杯茶,一包烟,一行代码写一天。
展开
-
数据结构和算法(Java版)学习笔记之数组的简单排序(五)
数组的简单排序(经典算法) 数组的简单排序有:冒泡排序、选择排序、插入排序三种: 1. 冒泡排序: 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排...原创 2019-04-12 14:45:14 · 206 阅读 · 0 评论 -
数据结构和算法(Java版)学习笔记之栈(六)
栈的基本知识和栈的应用举例 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 对于不同的数据结构有着不同的作用,如:数组、链...原创 2019-04-13 15:44:42 · 148 阅读 · 0 评论 -
数据结构和算法(Java版)学习笔记之单链表(八)
单链表基本概念 单链表是一种链式存取的数据结构,用一组地址任意的存储单元(可以是连续或者不连续的存储单元)存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的数据) + 指针(指示后继元素存储位置)。 结点结构 ┌───┬───┐ │data │next │ └───┴───┘ data域–存放结点值的数据域 next域–存放结点的直接后继结点的地址(位置) ...原创 2019-04-26 22:28:41 · 221 阅读 · 0 评论 -
数据结构和算法(Java版)学习笔记之队列(七)
队列的基本知识和Java代码实现 我们之前说到了栈,它是一种比较高效的数据结构,遵循“先入后出”的原则。而今天我们要讨论的队列,它也是一种特殊的列表,与栈不同的是队列遵循先进先出的原则,只能在队尾插入元素,在队首删除元素,就像我们平时排队买票一样。队列用于很多地方,比如提交给操作系统的一系列进程,打印池任务等。 队列主要的操作有入队和出队方法,我们为了观察方便,给出了查看的方法,下面是队列的Jav...原创 2019-04-19 22:03:44 · 169 阅读 · 0 评论 -
数据结构和算法(Java版)学习笔记之双端链表(九)
双端链表 双端链表:双端链表与传统链表非常相似,但双端链表并不是双向链表,只是新增了一个属性:对最后一个链结点的引用 。 其特点是:第一个链结点与最后一个链结点直接相连: 如上图所示 : 由于有着对最后一个链结点的直接引用,所以双端链表比传统链表在某些方面要方便很多,比如:在尾部插入一个链结点,双端链表可以进行直接操作; 因为传统链表只能通过next节点循环找到最后链结点操作,但双端链表可以直...原创 2019-05-10 23:26:09 · 181 阅读 · 0 评论