数据结构与算法
wildec777
这个人很真的很懒
展开
-
双指针法LeetCode总结
双指针方法 遍历对象的过程中,使用两个指针进行操作,实现相应的目的 快慢指针 经典环形链表 待补充 对撞指针 适用于有序数组,设置数组左索引与数组右索引 代码基本流程是 public f(int[] nums){ int left = 0; int right = nums.length-1; while (left <= right){ left++; //进行操作 rigth--; } } 盛水最多的容器 class原创 2020-08-20 01:27:41 · 205 阅读 · 0 评论 -
红黑树基本原理
红黑树是一颗二叉查找树 红黑树的节点不是红色就是黑色 叶子节点的是黑色(NIL) 根节点都是黑色的root 红色节点的两个子节点一定是黑色的,不可能存在两个相连的红色节点 黑高:任意一个节点的叶子的节点路径上的黑节点数量是相同的 如果一个节点存在一个黑子节点,那么该节点必然有两个子节点 1,三种基本操作 变色 左旋 右旋 2,查找:与二叉搜索树一样 3,插入:新建节点必须是红色的 当红黑树是空树的时候 插入+染色 当插入的节点已经存在的情况 查找到相应的节点以后把值更新原创 2020-08-17 19:52:13 · 192 阅读 · 0 评论 -
Java基础数据结构及其实现原理(一)
Java基础数据结构 Java类库中的基础数据结构 关注的问题: 实现的方式 基础的数据结构 是否有序 是否为空 是否重复 1, List ArrayList的实现原理 实现原理:数组,可扩容 基本的特点: 查询快 增删慢 //无参构造 默认容量是空 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } private static final Object[] DEFAU原创 2020-08-01 22:50:31 · 375 阅读 · 0 评论 -
二叉树的遍历算法(一)
///* // 复习一下 树的遍历算法 // 递归方法:前中后 // 非递归方法:前中后+层次 // // 树的定义: //public class TreeNode { // int val; // TreeNode left; // TreeNode right; // TreeNode(int x){ // val =x; // } //} // //*/ // public class Q1 { //递归函数写的时候就跟手算是一样的原创 2020-07-15 15:33:47 · 302 阅读 · 0 评论 -
三大基本排序算法
三大基本排序算法 快排与快排切分 public class quickSort { //快速排序的核心思想 分治+递归 //采用操作里面 比较核心的就是 使用一个临时变量pivot存储中间量,然后空出来每次强制替换的话 就可以少很多事情、 //时间复杂度O(NlogN)-O(N^2) //空间复杂度O(1) public static void quickSort(int[] array, int L, int R){ if (L >= R)原创 2020-07-15 15:29:46 · 264 阅读 · 0 评论