目录
1、队列的基本概念
2、Java模拟单向队列实现
3、双端队列
4、优先级队列
5、总结
分类:
编程语言 时间:
2019-12-11 11:02:18
阅读次数:
69
Java稀疏数组 定义 稀疏数组:数组中的大部分元素值都没有使用(或者都为0),在数组中仅有少部分的空间使用,造成了内存空间的浪费。 使用新的压缩的方式表示原来数组的方式为稀疏数组。 为什么要使用稀疏数组? 为了节省内存空间。 稀疏数组实现原理 引入应用场景 开发人员需要开发一个五子棋的游戏,为了实 ...
分类:
编程语言 时间:
2019-12-01 13:33:52
阅读次数:
69
Java数据结构和算法(八)——递归 目录 1、递归的定义 2、求一个数的阶乘:n! 3、递归的二分查找 4、分治算法 5、汉诺塔问题 5、归并排序 6、消除递归 递归和栈 7、递归的有趣应用 ①、求一个数的乘方 ②、背包问题 ③、组合:选择一支队伍 8、总结 记得小时候经常讲的一个故事:从前有座山 ...
分类:
编程语言 时间:
2019-11-17 10:22:54
阅读次数:
125
- -网上找结果很多都是无法排序有重复数据的,因此查了查资料写个改良版 百度百科: 快速排序算法通过多次比较和交换来实现排序,其排序流程如下: (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。 (2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分 ...
分类:
编程语言 时间:
2019-11-12 15:57:33
阅读次数:
84
数组 优点:查询快,如果知道索引可以快速地存取 缺点:删除慢,大小固定 有序数组 优点:比无序数组查找快 缺点:删除和插入慢,大小固定 栈 优点:提供后进先出的存取方式 缺点:存取其他项很慢 队列 优点:提供先进先出的存取方式 缺点:存取其他项都很慢 链表 优点:插入快,删除快 缺点:查找慢(一个个 ...
分类:
编程语言 时间:
2019-11-10 16:05:07
阅读次数:
85
Java数据结构和算法(四)——栈 目录 1、栈的基本概念 2、Java模拟简单的顺序栈实现 3、增强功能版栈 4、利用栈实现字符串逆序 5、利用栈判断分隔符是否匹配 6、总结 前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。 ...
分类:
编程语言 时间:
2019-11-09 17:56:22
阅读次数:
91
public class MyQueue { int[] elements; public MyQueue() { elements = new int[0]; } //入队 public void add(int element) { int[] newArr = new int[elements ...
分类:
编程语言 时间:
2019-11-04 20:10:33
阅读次数:
90
希尔排序的基本介绍: 希尔排序同之前的插入排序一样,它也是一种插入排序,只不过它是简单插入排序之后的一个优化的排序算法,希尔排序也被称为缩小增量排序。 希尔排序的基本思想: 希尔排序是把数组中给定的元素按照下标的一定增量进行分组,在分组之后,对每组使用直接插入排序算法;随着增量的减少,每组包含的元素 ...
分类:
编程语言 时间:
2019-10-28 20:58:47
阅读次数:
94
简单选择排序的介绍: 从给定的序列中,按照指定的规则选出某一个元素,再根据规定交换位置后达到有序的目的。 简单选择排序的基本思想: 假定我们的数组为int [] arr = new int[n],第一次我们从arr[0]~arr[n-1]中选择出最小的值与arr[0]交换。第二次我们从arr[1]~ ...
分类:
编程语言 时间:
2019-10-28 14:26:33
阅读次数:
93
冒泡排序的基本思想: 通过对待排序序列从前到后(从下标小的元素开始),依次比较相邻位置的元素的值,若发现与给定的次序冲突,则交换位置(假设数值大的数放在序列的后面),使数值较大的元素逐渐从前移动到后部,就像冒泡一样。 对于冒泡排序,我们可以对它进行一定的优化: 在排序的过程中,每个元素都不断的接近自 ...
分类:
编程语言 时间:
2019-10-26 10:38:10
阅读次数:
106