排序算法
dayday_14056891
这个作者很懒,什么都没留下…
展开
-
归并排序
归并排序的核心思想是“分而治之“,与快速排序的思想一致。归并排序的特点有:归并排序的时间复杂度为O(nlogn),可以达到基于比较的排序算法的最优时间复杂度;归并排序是一种稳定的排序算法,即相同元素在排序前后的相对位置保持不变;归并排序是一种常用的外部排序算法;归并排序需要O(n)的辅助空间,在同类算法中空间复杂度略高。//归并排序的java实现public class MergeSort { public static void main(String[] args) { int原创 2020-09-11 21:05:13 · 162 阅读 · 0 评论 -
堆排序算法
堆是一种完全二叉树,且具有以下性质: 大顶堆:每个节点的值都大于或者等于其左右孩子节点的值; 小顶堆:每个节点的值都小于或者等于其左右孩子节点的值。堆排序利用了堆来设计排序算法,是一种选择排序算法,其最好、最坏和平均时间复杂度均为,该排序算法不稳定。堆排序的基本思路:1)首先建堆,升序排序选择大顶堆,降序排序选择小顶堆;2)将堆顶元素与当前堆的最后一个元素进行交换,将最大(最小)元素沉到数组末尾,相当于从堆中删除当前最大(最小元素)。3)重新调整当前堆...原创 2020-08-26 20:04:37 · 133 阅读 · 0 评论 -
快速排序算法
快速排序的基本思想是,以记录中某一个元素a为基准,使得一趟排序后的结果满足:元素a之后记录的关键字均不小于记录a,同时使其之前元素的关键字均不大于记录a。一趟快速排序后,元素a把待排序序列分为两个部分,这时只需要对前后两个部分再用相同的方法进行排序便可。public class QuickSort { public static void main(String[] args) { int[ ] arr = new int[ ]{ 4, 5, 1, 6, 2, 7, 3, 8 };原创 2020-08-24 16:03:54 · 204 阅读 · 0 评论