自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 笔记(数据结构与算法)2.2——使用三路快速排序

前言三路快速排序主要可以对具有重复元素的数组进行优化,在partition的过程中将重复元素v均放在区间[lt + 1, i - 1] ,使得arr[lt + 1, i - 1] == v ,递归则从[l, lt - 1],和[gt, r]继续,避开了[lt + 1, i - 1]。代码import java.util.Arrays;import java.util.Random;public class QuickSort { private QuickSort(){} pu

2021-03-05 19:13:29 50

原创 笔记(数据结构与算法)2.1——使用双路快速排序

前言上一篇中的快速排序算法是单路快速排序,尽管使用Random类优化了可能退化成O(n^2)的情况(数组有序的情况),但还是有其他情况导致快排的时间复杂度退化,那就是数组元素都一样的情况。这种情况下partition的位置还是在[l, r]中的某一端(之前快排代码是在l端)。这时候就需要使用双路快速排序法来优化这种情况。代码实现import java.util.Arrays;import java.util.Random;public class QuickSort { priva

2021-03-04 20:13:16 54 1

原创 笔记(数据结构与算法)2——QuickSort

快速排序实现方式1以下代码为单路快速排序算法的实现。注意点是使用Random类是避免出现有序数组时,快排的时间复杂度退化为O(n^2)。还有注意测试用例时,如果是int[] 类型要转换为Intege[] ,否则无法传入到泛型中。import java.util.Random;public class QuickSort { private QuickSort() { } public static <E extends Comparable<E>&g

2021-03-04 19:42:47 63 1

原创 笔记(JUC)1——生产者消费者模式代码记录

代码记录package threadcoreknowledge.threadobjectclasscommonmethods;import java.util.ArrayList;import java.util.Date;import java.util.LinkedList;import java.util.List;/** * 描述: 用wait/notify来实现生产者消费者模式 */public class ProducerConsumerModel { pu

2021-02-28 22:42:32 55

原创 笔记(数据结构与算法)1——AVL

前言学习bobo老师的数据结构与算法之AVL树。AVL树是平衡二叉树。(AVL是发明者名字缩写,好像是苏联人),记录知识点平衡二叉树对于任意一个节点,左子树和右子树的高度差不能为超过一。所以在Java实现的AVL树中需要height变量,并也要有返回平衡因子的方法。平衡二叉树的高度和节点数量之间关系也是O(logn)的。AVL树重要的操作有RR(对应平衡因子大于1并且node.left的平衡因子大于1,下一个类比),LL,RL(先对node.right进行右旋,然后对node进行左旋,下一个类

2021-02-28 21:40:03 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除