自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 数组模拟队列——Java实现

队列简介:队列是一种有序列表,可以用数组或链表来实现。遵循先入先出的原则,即:先存入队列的数据,要先取出,后存入队列的数据的要后取出。在队列中,允许插入数据的一端叫做队尾(rear),允许取出数据的一端则称为队头(front)。使用数组模拟队列示意图如下:数组模拟队列的思路:队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如上图,其中maxSize 是该队列的最大容量。 因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的

2020-05-25 21:38:50 243

原创 稀疏数组与普通数组的转换——Java实现

稀疏数组简介:所谓稀疏数组就是当数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以使用稀疏数组去压缩数据。讲一个实际需求中的例子:现在要编写一个五子棋程序,这便有存盘退出和续上盘的功能,而我们需要用二维数组记录棋盘。用1代表黑子,用2代表蓝子,空白位置用0表示:问题分析:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据,所以可采用稀疏数组来压缩数据。稀疏数组适用场景:当一

2020-05-23 21:39:39 327

转载 二叉堆(Heap)与二叉查找树(Binary Search Tree)的区别

问题描述通常我们在学习二叉堆和二叉查找树时是很容易混淆的,虽说堆也是一种完全二叉树,但二者差别还是挺大的,本文试做分析。逻辑结构二叉堆和二叉查找树都是结点带权重,并在父子结点间满足某种规则的数据结构。二叉堆是一种完全二叉树,分大根堆、小根堆两种,子结点总是大于或小于父结点。大根堆,顾名思义,根是最大的,每个子结点都要小于父结点,不区分左右儿子谁大谁小,也不必保证某个“孙子结点”一定要小于另一个“儿子结点”。小根堆恰恰相反,根是最小的,每个子结点都要大于父结点,不区分左右儿子谁大谁小,也不

2020-05-08 22:55:59 3795

原创 线性查找(linearSearch)与二分查找(binarySearch)比较—Java实现

一、线性查找(顺序查找)定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。算法要求:1.数据存储顺序没有限制;2.存储数据类型没有限制。代码实现:/** * 线性查找:顺序查找法;在给定的一列数组中,一个个查询需要的内容。 * 如果找到返回下标,如果没有找到,返回-1. */import java.util.Scanner;public class LinearSearch { public static void main(String[]

2020-05-08 19:06:46 1161 1

原创 Java中Arrays.toString(a)与a.toString()的区别

1.Arrays.toString(a)方法是是用来将数组转换成String类型输出,入参可以是long,float,double,int,boolean,byte,object型的数组,使用此方法可以很方便地输出数组,而不用一个一个地输出数组元素。2.a.toString()方法只会打印出数组的地址。...

2020-05-07 22:11:07 2968 2

转载 快速排序(Quick Sort)-Java实现

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放...

2020-05-06 12:15:15 291

转载 归并排序(Selection Sort)-Java实现

归并排序(Merge Sort)算法简介:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治策略(Divide and Conquer)(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序...

2020-05-04 23:50:21 200

转载 堆排序(Heap Sort)-Java实现

堆排序(Heap Sort)算法简介:堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序分为两种方法:大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列; 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;堆排序(Heap Sort...

2020-05-04 23:08:51 390

原创 插入排序(Insertion Sort)-Java实现

插入排序(Insertion Sort)算法简介:插入排序是一种丛序列左端开始依次对数据进行排序的算法。在排序过程中,左侧的数据陆续归位,而右侧留下的就是还未被排序的数据。插入排序(Insertion Sort)算法原理:插人排序的思路就是从右侧的未排序区域内取出一个数据,然后将它插入到已排序区域内合适的位置上。插入排序就类似排纸牌,从牌桌上抓牌排在手里,手里的牌始终是有序的,每次都把...

2020-05-02 22:29:53 775

原创 选择排序(Selection Sort)-Java实现

选择排序(Selection Sort)算法简介: 选择排序是利用逐个选择的方式进行排序,逐个选择出数组中的最小(或最大)的元素,顺序放在已排好序的序列后面,直到全部记录排序完毕。选择排序(Selection Sort)算法原理:例如我们有一个数组,我们需要把较小的元素排在前面,把较大的元素排在后面,那么需要选择出最小元素并将其排在序列最前:从待排序列中选出最小(或最大)的一个元...

2020-05-02 18:56:29 1032

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除