07 2020 档案
摘要:举个例子,把代码过程看作去一个目标地点,普通代码调用呢就是事先知道经纬度,然后你坐直升机直接就到了;而通过反射呢就像不知道具体的地点,只知道先去一个地点,然后前往下一个地点,一步步到达目标。这两种方法殊途同归,反射因为要“寻路”,所以会慢一些,但在找到目标地点后和直接调用是一样的。 有时候我们需要在
阅读全文
摘要:##封装:将数据和行为组合成一个对象,并向对象的使用者隐藏实现细节 类的细节 一个对象变量并没有实际包含一个对象,Java中任何对象变量的值都是对存储在另外一个地方的一个对象的引用,new操作符的返回值也是一个引用 如果需要返回一个可变数据域的拷贝,就应该使用clone() 局部变量不会自动初始化为
阅读全文
摘要:##堆 一个完全二叉树 堆中每个节点的值都必须大于等于(或小于等于)其子树中每个节点的值 插入O(logn) 将新的元素放到堆的最后 堆化O(logn):顺着节点所在路径,向上逐个对比,然后交换 删除堆顶元素O(logn) 删除堆顶元素 将最后一个节点放到堆顶 从上到下堆化(左子树优先) ##堆排序
阅读全文
摘要:##树的相关概念 父节点、子节点、兄弟节点 没有父节点的节点叫根节点,没有子节点的节点叫叶节点 节点的高度:节点到叶子节点的最长路径(边数)(从下往上,根节点高度为0) 节点的深度:根节点到这个节点所经历的边数(从上往下,根节点的深度为0) 节点的层数:节点的深度+1(类比楼房层数,地面是一楼) 树
阅读全文
摘要:哈希算法:将任意长的二进制值串映射为固定长的二进制值串 哈希算法需满足以下几点 从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法) 对输入数据非常敏感,哪怕原始数据只修改了一个 Bit,最后得到的哈希值也大不相同 散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小 哈希算法
阅读全文
摘要:散列表利用数组支持按下标随机访问的时候,时间复杂度为O(1)的特性, 存储时通过散列函数把键值转化为下标,将数据存储在数组中对应下标的位置 查询时也同样利用散列函数计算出下标,取出数据 散列表三个关键 散列函数:hash值尽可能分布均匀,同时不能太复杂影响效率 装载因子:根据响应时间是否敏感控制大小
阅读全文
摘要:跳表基于单链表实现,链表查找、插入、删除绝大部分时间花在遍历链表上,跳表使用索引来优化链表遍历的过程,使得跳表具有非常优秀的查找、插入、删除性能,并且是天然的动态数据结构 查找、插入、删除时间复杂度都是O(logn) 跳表原理的理解 二叉搜索通过计算mid的值,使得每一次要遍历的数据量减半,那么链表
阅读全文
摘要:排序算法总结 如何实现一个通用的排序算法 要知道时间复杂度只是描述一个增长趋势,复杂度为O(n**2)的排序算法执行时间不一定比复杂度为O(nlongn)长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n**2的值实际比 knlogn+c还要小。 可优化的点 小数据规模时
阅读全文
摘要:归并排序 特点 非原地,空间复杂度O(n) 稳定 O(nlogn) 归并排序的思想是如果要排序一个数组,我们先把数组从中间分为前后两部分,然后对前后部分分别排序,再将排好序的两部分合在一起,这样整个数组就都有序了 快速排序 特点 原地 不稳定 O(nlongn) 选择一个分区点pivot,把它放到正
阅读全文
摘要:**有序度:**数组中具有有序关系的元素对的个数 有序元素对:a[i] <= a[j],如果i < j。 完全有序的数组,有序度就是 n * (n - 1) /2(满有序度) 逆序度 = 满有序度 - 有序度 冒泡排序 特性 原地 稳定 O(n**2)(最少0次交换,最多n*(n-1)/2次交换)
阅读全文
摘要:栈(stack) 特点:操作受限的线性表,只允许在一端插入和删除数据,后进先出 顺序栈,入栈操作有两种情况: 栈空间足够,那么直接入栈就行(定义不涉及内存搬移的入栈操作为simple-push操作,时间复杂度为O(1)) 栈空间不足,则此时需要申请一块更大的内存空间,并将栈中的所有数据(设大小为K)
阅读全文
摘要:**链表(单链表)**是一种通过指针将一组零散的内存块串联起来的数据结构,每个链表的结点除了存储的数据之外,还需要记录链上的下一个节点的地址 链表的插入和删除(给定节点指针)时间复杂度O(1),但遍历删除的时间复杂度是O(n) 双向链表:每个结点不止有一个后继指针指向后面的结点,还有一个前驱指针指向
阅读全文
摘要:点击使用幕布网页版查看(含思维导图) 数组(Array)是一种线性表结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 最大的特点:支持随机访问,根据下标随机访问的时间复杂度为O(1) 寻址:a[i]_add = base_add + i * data_type_size 数组的插入和删除
阅读全文

浙公网安备 33010602011771号