![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
排序算法
王胖子总叫我减肥
学习使我进步
展开
-
java数据结构与算法之堆排序
1 堆排序基本介绍1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种排序选择,它的最好、最坏,平均时间复杂度均为O(nlogn),他也不是稳定排序。2)堆排序是具有以下性质的完全二叉树,每个节点的值都大于或者等于其左右孩子节点的值,称为大顶堆,注意:没有要求节点的左孩子的值和右孩子的值之间的大小关系。3)每个节点的值都小于或者等于左右节点的值,称为小顶堆。4)大顶堆举例说明: 5)小顶堆举例说明6)一般升序采用大顶堆,降序采用小顶堆。2...原创 2020-06-30 16:12:58 · 198 阅读 · 1 评论 -
java数据结构与算法之 基数排序(桶排序)
1.基数排序介绍 基数排序属于分配式排序,又称桶子法,它是通过键值的各个位的值,将要排序的元素分配至某些桶中,达到排序的作用。它是稳定性排序,基数排序法是效率高的稳定性排序法,基数排序的桶排序的扩展。2.基数排序的基本思想 将所有待排序的值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成了一个有序序列。3.代码实现首先使用逐步推导的思想package Sort;import ...原创 2020-06-19 21:30:07 · 172 阅读 · 0 评论 -
java数据结构与算法之归并排序
1.归并排序 归并排序是利用归并思想实现的排序方法。该算法采用经典的分治策略。分治法就是将问题分成一些小的问题然后递归求解,而治的阶段就是将分的阶段得到的各个答案“修补”在一起,即分而治之。2. 归并排序的基本思想示意图 并归排序基本思想示意图2----合并相邻有序子序列。3 代码实现package Sort;import java.util.Arrays;public class MergetSort { public static void ma...原创 2020-06-19 17:46:11 · 122 阅读 · 0 评论 -
java数据结构与算法之快速排序
1 快速排序介绍 快速排序是对冒泡排序的一种改进。基本思想是:通过一次排序将需要排序的数据分割成两个独立的部分,其中一部分数据都必另外一部分数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据编程有序序列。2.快速排序的算法示意图3.代码实现package Sort;import java.util.Arrays;public class QuikSort { public static void main(St...原创 2020-06-18 17:35:07 · 131 阅读 · 0 评论 -
java数据结构与算法之希尔排序
1.希尔排序法的介绍 希尔排序是希尔在1959年提出的一种排序算法。希尔排序也是一种插入算法,它是简单插入排序经过简单的改进之后的一个更高效的版本,也称为缩小增量排序。2. 希尔排序的思想 希尔排序是把数据按照下表的一定增量分组,对每组至二级使用插入排序算法;随着增量的逐渐减少,每组包含的关键的词越来越多,当增量减少至1时,整个文件恰好被分为一组,算法便终止。3. 希尔排序代码实现package Sort;import java.util.Arrays;p...原创 2020-06-18 16:15:08 · 128 阅读 · 0 评论 -
java数据结构之算法----插入排序
1. 插入排序插入排序属于内部排序法,是对欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。2.插入排序的思想 插入排序的基本思想是:把n个待排序的元素看成一个有序列表和一个无序列表,开始时有序列表只包含一个元素,无序列表包含n-1个元素,排序过程中每次从无序列表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行对比,将它插入到有序表中的适当位置,使之成为新的有序表。3. 插入排序的思路图4. 代码实现 先根据思路使用推导的方...原创 2020-06-12 17:18:54 · 156 阅读 · 0 评论 -
java 数据结构之算法 ----选择排序
1. 选择排序的思想 选择排序也是一种简单的排序方法。它的基本思想是:第一次从 arry[0]--array[n-1]中选取最小值,与arry[0]进行交换,第二次从 arry[1]--array[n-1]中选取最小值,与 arry[1]进行交换,依次类推,总共进行n-1次排序,得到一个编码顺序从小到大排序的有序序 列。2 选择排序的思路分析: 原始的数组: 101,34,119,1 第一轮排序: 1,34,119,101 第二轮排序: 1,34,11...原创 2020-06-12 15:44:05 · 115 阅读 · 0 评论 -
冒泡排序
1.冒泡排序的概念 冒泡排序的基本思想:通过对待排序序列从前向后(从下表较小的元素开始),依次比较相邻元素的值,若发现逆序就交 换,使值较大的元素逐渐从前移向后部。 优化: 因为在排序的过程中,各个元素都不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此在排序 过程中,设置一个标志flag判断元素是够进行过排序,从而减少不必要的比较。2. 冒泡排序图解如上图所示: ...原创 2020-06-12 09:36:22 · 153 阅读 · 0 评论