随笔分类 - 数据结构
摘要:二叉树的基本概念: 正如我们所了解的,树是有很多中形态,但是我们规定,形如每个节点最多只能有两个子节点的一种形如称为二叉树。我们将二叉树中该节点的两个子节点分别称作为:左孩子节点和右孩子节点。该节点称为他们的双亲节点。 二叉树的结构示意图如下: 在二叉树的树状结构中,有两种特殊的二叉树值得我们关注。
阅读全文
摘要:快速排序是对冒泡排序的一种改进。 快速排序的基本思想: 假设我们以升序为例,它的执行流程可以概括为,每一趟选择当前所有子序列中的一个关键字(通常我们选择第一个,下述代码实现选择的也是第一个数)作为枢纽,将子序列中比枢纽小的移动到枢纽前面,比枢纽大的移动到枢纽的后边;当本趟所有子序列都被枢纽以上述规则
阅读全文
摘要:希尔排序的基本介绍: 希尔排序同之前的插入排序一样,它也是一种插入排序,只不过它是简单插入排序之后的一个优化的排序算法,希尔排序也被称为缩小增量排序。 希尔排序的基本思想: 希尔排序是把数组中给定的元素按照下标的一定增量进行分组,在分组之后,对每组使用直接插入排序算法;随着增量的减少,每组包含的元素
阅读全文
摘要:插入排序的基本介绍: 插入排序是对想要排序的序列以插入的方式寻找该元素的适当的位置,从而达到排序的目的。 插入排序的基本思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时,有序表只有一个元素(整个序列的第一个元素看成有序表的第一个元素),无序表中有n-1个元素,在接下来的排序过程中,每次从
阅读全文
摘要:简单选择排序的介绍: 从给定的序列中,按照指定的规则选出某一个元素,再根据规定交换位置后达到有序的目的。 简单选择排序的基本思想: 假定我们的数组为int [] arr = new int[n],第一次我们从arr[0]~arr[n-1]中选择出最小的值与arr[0]交换。第二次我们从arr[1]~
阅读全文
摘要:冒泡排序的基本思想: 通过对待排序序列从前到后(从下标小的元素开始),依次比较相邻位置的元素的值,若发现与给定的次序冲突,则交换位置(假设数值大的数放在序列的后面),使数值较大的元素逐渐从前移动到后部,就像冒泡一样。 对于冒泡排序,我们可以对它进行一定的优化: 在排序的过程中,每个元素都不断的接近自
阅读全文
摘要:这篇文章主要讲解了通过java实现单链表的操作,一般我们开始学习链表的时候,都是使用C语言,C语言中我们可以通过结构体来定义节点,但是在Java中,我们没有结构体,我们使用的是通过类来定义我们所需要的节点,链表。 下面我主要说明5个操作:增加元素(两种),查找元素,更新元素,删除元素,遍历单链表中的
阅读全文
摘要:队列的基本介绍 队列,是一个线性表,分为顺序队列和链式队列,本节我们说的是顺序队列。 队列存储在一段连续的存储空间之内(数组),它自身的特点是:先进先出,即从队尾添加元素,对头删除元素。 在平时的生活中,打印机等等用到的原理都是队列。 接下来我所讲的跟队列有关的内容分为两种:普通队列,循环队列。下面
阅读全文
浙公网安备 33010602011771号