
数据结构与算法
小妲己在王者峡谷
这个作者很懒,什么都没留下…
展开
-
堆排序工具类
最近需求用到堆排序,写了个堆排工具类,排序对象需要实现Comparable类,重写compareTo方法即可。public class HeapSort<T extends Comparable<T>> { private static final int index = 2; /*** * 堆排序 * @param heap he...原创 2019-11-26 23:27:49 · 238 阅读 · 0 评论 -
排序算法之归并排序
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。package com.wsy.sort;public class MergeSortTest{ public s...原创 2019-07-04 20:19:14 · 122 阅读 · 0 评论 -
排序算法之堆排序
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:对堆中的结点按层进行编号,将这种逻辑结构映射到数组中:该数组从逻辑上讲就是一个堆结构,我们用简单...原创 2019-07-04 23:49:48 · 98 阅读 · 0 评论 -
排序算法之快速排序
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,快速排序平均时间复杂度也为O(nlogn)级。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序,简单点选择第一个数作为参考值。方法其实很...原创 2019-07-05 16:37:17 · 282 阅读 · 0 评论