
Java数据结构与算法
雅力士多峰
摸鱼CRUD
展开
-
JAVA排序算法之归并排序
介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修 补"在一起,即分而治之)。基本思想说明: 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。...原创 2019-10-17 09:44:22 · 200 阅读 · 0 评论 -
JAVA排序算法之快速排序
基本介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排序过程可以递归进行,以此达到整个数据变成有序序列思路分析图代码实例public static void quickSort(int[] arr,int left...原创 2019-10-17 09:44:13 · 146 阅读 · 0 评论 -
JAVA排序算法之希尔排序
基本介绍希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序法基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止希尔排序法的示意图代码实...原创 2019-10-17 09:44:04 · 1672 阅读 · 0 评论 -
JAVA排序算法之插入排序
基本介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序法思想:插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入...原创 2019-10-17 09:43:50 · 1811 阅读 · 2 评论 -
选择排序
基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到 排序的目的。选择排序思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr...原创 2019-10-17 09:43:37 · 127 阅读 · 0 评论 -
冒泡排序
基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不...原创 2019-10-17 09:43:13 · 156 阅读 · 0 评论 -
JAVA数据结构-稀疏数组
稀疏数组什么是稀疏数组?假设有这样的一个二维数组shape是11x11,但是很多数据都是0,比较浪费空间,我们可以通过一些方法来压缩这个数组,稀疏数组就是一种压缩数组的方法,通过稀疏数组变换后,原数组变为变成了4X3,节约了很多空间稀疏数组存储原理当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组处理数据的方法是:记录数组一共有几行几列...原创 2019-08-15 16:56:02 · 160 阅读 · 0 评论