数据结构

数据结构

数据结构与算法(十一)排序---快速排序

快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码实现/***快

2020-07-22
89 0

数据结构与算法(十)排序---希尔排序

希尔排序法介绍希尔排序是希尔(DonaldShell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序法基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键

2020-07-22
58 0

数据结构与算法(九)排序---插入排序

插入排序法介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序法思想:插入排序(InsertionSorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程

2020-07-22
52 0

数据结构与算法(八)排序---选择排序

基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序的思想:选择排序(selectsorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1

2020-07-20
124 0

数据结构与算法(七)排序--冒泡排序

冒泡排序:冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。代码实现/***冒泡排序*@paramarr*/publicstaticvoidbu

2020-07-20
60 1

数据结构与算法(六)栈 ---前缀、中缀、后缀表达式(逆波兰表达式)

前言前缀表达式、中缀表达式、后缀表达式都是四则运算的表达方式,用以四则运算表达式求值,即数学表达式的求值。中缀表达式简介中缀表达式就是常见的运算表达式,如(3+4)×5-6前缀表达式简介前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前比如:-×+3456前缀表达式的计算机求值1)从右至左扫描表

2020-07-20
81 0
2020-07-15
72 0

数据结构与算法(四) 双向链表

一、简单介绍双向链表是一种对称结构,它克服了单链表上指针单向性的缺点,其中每一个节点即可向前引用,也可向后引用,这样可以更方便的插入、删除数据元素。  由于双向链表需要同时维护两个方向的指针,因此添加节点、删除节点时指针维护成本更大;但双向链表具有两个方向的指针,因此可以向两个方向搜索节点,因此双向

2020-07-15
63 0

数据结构与算法(三)单链表反转---腾讯面试题

接上面的单向链表实现,单链表的反转。/***单链表反转*@paramheadNode*/publicvoidreverseList(NodeheadNode){if(headNode.getNext()==null||headNode.getNext().getNext()==null){retur

2020-07-13
69 0

数据结构与算法(二)单链表

一、简单介绍单链表是链表的其中一种基本结构。一个最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的结点。因为只有一个指针结点,称为单链表。二、代码简单实现1、节点对象/***链表节点*/classNode{/***编号不可重复*

2020-07-13
61 0