随笔分类 - 经典排序,树算法
数组实现双色球彩票
摘要:数组相关问题 1、如何把数组中的元素逆序? /* 思路:逆序就是把数组的元素前后倒置。 我们可以把前后两个数 i 和 arr.length-1-i 位置上的数进⾏交换, 但是⼀定注意交换次数是⻓度的⼀半。 */ function reverseArray1(arr) { for (var i = 0
阅读全文
堆排-元素去重-查找问题
摘要:堆排序与元素去重及查找问题 1、堆排序与元素去重 package com.m.sort; import java.util.Arrays; import java.util.Random; public class Test2 { public static void main(String[] a
阅读全文
删除排序数组中的重复项再练习
摘要:删除排序数组中的重复项再练习 package com.m.algorithm; import java.util.Arrays; import java.util.Random; public class Test { //1、删除排序数组中的元素 public static int test(in
阅读全文
插入排序与二分查找与CopyOnWrite 写时复制思想
摘要:插入排序与二分查找 package com.m.test; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import
阅读全文
稳定的算法用于对象排序
摘要:稳定的算法用于对象排序 插入与归并等,稳定算法用于对象排序 插入排序 package com.m.algorithm; import java.util.Arrays; public class Test { /** 深入学习排序算法的思路 * 冒泡 选择 * * 插入(二分) O(n^2) 归并(
阅读全文
二叉树、2-3 树、红黑树
摘要:二叉树、2-3 树、红黑树 二叉树、2-3 树、红黑树 一、满二叉树 二、完全二叉树 三、二叉查找树 四、平衡二叉树 4.1 插入原理 4.2 旋转问题 4.3 旋转操作 4.3.1 单旋转 4.3.2 双旋转 五、平衡查找树之 2-3 查找树(2-3 Search Tree) 5.1 将数据项放入
阅读全文
LeetCode题解——接雨水
摘要:LeetCode题解——接雨水 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/trapping-rain-water/description/ 题目描述: 思路一:利
阅读全文
归并排序时间复杂度分析
摘要:归并排序 归并排序也叫(Merge sort)。 工作原理 将给定的数组一份为二 对两部分数组再使用归并排序使其有序 最后再将两部分数组合并 时间复杂度计算 转载自:https://blog.csdn.net/a1033025319/article/details/88650514
阅读全文
B树,B+树,红黑树应用场景及B+实现
摘要:B树,B+树,红黑树应用场景笔记 一、B树的应用 1、B树大量应用在数据库和文件系统当中。 它的设计思想是,将相关数据尽量集中在一起,以便一次读取多个数据,减少硬盘操作次数。B树算法减少定位记录时所经历的中间过程,从而加快存取速度。 假定一个节点可以容纳100个值,那么3层的B树可以容纳100万个数
阅读全文
30张图带你理解红黑树
摘要:30张图带你彻底理解红黑树 当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感。 终于,在学习了几天的红黑树相关的知识后,我想把我所学所想和所感分享给大家。红黑树是一种比较难的数据结构,要完全搞懂非常耗时耗力,红黑树怎么自平衡?什么时候需要左旋或
阅读全文
LeetCode题解——四数之和
摘要:LeetCode题解——四数之和 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/4sum/description/ 题目描述: 思路一:用Set集合来过滤重复元素 用
阅读全文
LeetCode题解——最长回文子串
摘要:LeetCode题解——最长回文子串 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/longest-palindromic-substring/description
阅读全文
链表排序之堆排序
摘要:3. 链表排序之堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种**选择排序,**它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都
阅读全文
链表排序之快排与归并(递归与非递归)
摘要:链表排序之快排与归并(递归与非递归) 1.对链表进行快速排序 以【4,2,5,3,7,9,0,1】为例,我们来模拟一趟快排的过程。 **1、**初始化时,i指向链表首元素4;j = i +1,指向2。基准数字为当前i 指向的数字:4。 j 4 2 5 3 7 9 0 1 i **2、**随后开始循环
阅读全文
LeetCode题解——字符串转整数(atoi)
摘要:LeetCode题解——字符串转整数(atoi) 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/string-to-integer-atoi/description/
阅读全文
堆排序与选择排序的关联
摘要:堆排序与选择排序的关联 一、简单选择排序 基本思想:假设排序表为 L[1....n] ,第i趟排序即从L[i,,,,n] 中选择关键字最小的元素与 L(i) 交换,每一趟排序可以确定一个元素的最终位置,这样经过 n-1 趟排序就可以使整个排序表有序。 选择排序的执行过程为每次循环遍历数组找出最小(或
阅读全文
LeetCode题解——两数之和
摘要:题解LeetCode——两数之和 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/two-sum/description/ 题目描述: 思路一:利用哈希表来记录nums
阅读全文
题解LeetCode——回文数
摘要:题解LeetCode——回文数 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/palindrome-number/description/ 题目描述: 思路一:翻转数
阅读全文
题解LeetCode--三数之和
摘要:三数之和--LeetCode015 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/3sum/description/ 题目描述: 知识点:哈希表,对撞双指针 思路一:
阅读全文
LinkedList原理分析
摘要:LinkedList的API boolean add(E object) void add(int location, E object) boolean addAll(Collection<? extends E> collection) boolean addAll(int location,
阅读全文