![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE数据结构
baidu_974079012
初入IT界的小菜鸟
展开
-
Java代码实现:交换排序之冒泡排序
1、没有优化的版本,多少个元素进行多少轮冒泡:public class SixSortTest { /** * 第一个冒泡排序;按照升序排列 * @param data 传入要排序的数组 */ public static void bubbleSort(int[] data){ int n = data.length; ...原创 2019-04-04 23:19:01 · 236 阅读 · 0 评论 -
Java代码实现:八大排序
最近学了数据基础最基础的几种排序,总结一下八大排序小结;首先呢先说一下分类:1.交换排序 (冒泡排序、快速排序)2.插入排序(直接插入排序、二分插入排序、希尔排序)3.归并排序4.选择排序(选择排序、堆排序)1、交换排序1.1、冒泡排序冒泡排序实际上是这几种排序里面最简单的排序,它的思路很简单,对于一组数字,每遍历一次数组,就会有一个元素到达最后将要排好序时的位置;具体实现是这...原创 2019-04-05 12:22:16 · 232 阅读 · 0 评论 -
Java代码实现:插入排序(直接插入,折半插入,希尔排序)
1、直接插入排序((insertSort)首先思考一个问题,往一个已经排好序的数组中插入一个数字,插入后数组依旧是有序数组,这是一个动态排序的过程,我们可以借鉴这种插入方法来实现排序,所以就有了插入排序;所谓直接插入排序,就是将待排序的数组中的元素分成两个区间,已排序区间和未排序区间,刚开始时将数组的首元素作为已排序区间的第一个元素,数组中的其余元素为未排序区域,然后每次取未排序区间的元素在...原创 2019-04-05 12:21:11 · 6542 阅读 · 10 评论 -
Java实现:八大排序之选择排序(心得体会)
选择排序:算法思想:选择排序的实现思路有点儿类似于插入排序,也是划分为已排序区间和未排序区间,但是选择排序每次是从未排序区找到最小的元素,然后放到已排序区间的末尾,仅此而已;下面是我根据自己的理解画的示意图:下面是代码实现:/** * 选择排序; * 无序的一组数,每次从无序的数集中选择最小的一个数字, * 添加到有序数组的最后一位;直到无序数组为空 ...原创 2019-04-06 00:37:21 · 455 阅读 · 0 评论 -
Java实现:交换排序之快速排序(Quicksort)、(基础、二路、三路快速排序)
1、简单快排所谓快速排序,利用的是一种“分而治之”的思想,有点像归并排序,但是还是有点区别的;快排思想是这样的:待排序数组中下标从l(左边)到r(右边)之间的一组数据,我们选择其中任意一个元素作为分区点pivot,然后这组数据中大于分区点元素的全部放到它的右边,小于它的全部放到左边,此时这组数据中,这个pivot元素以及排到了它将要排序后的位置;然后它左右两边的两组数据接着以这种方式选分区点...原创 2019-04-06 23:30:13 · 1204 阅读 · 0 评论 -
归并排序(合并排序)(Merge Sort):Java代码实现
4、归并排序法思想:分治思想具体实现细节:如果要排序一个数组,先把数组从中间分成前后两部分,然后对前后两部分分别进行排序,再将排好序的两部分合并在一起,这样整个数组就有序了;下面看一下我自己画的简单示意图:这里解释一下图示,先分再合,合的时候排序;小数组排序,然后一步一步合成大数组的时候再排序,直到合并成一个大数组;代码展示:首先是递归函数private static void...原创 2019-04-08 19:18:44 · 1703 阅读 · 0 评论