数据结构和算法
h_372101
这个作者很懒,什么都没留下…
展开
-
算法思想:贪心 分治 回溯 动态规划 数据结构:B+树(复习总结)
算法思想:贪心 分治 回溯 动态规划算法 数据结构:B+树贪心:贪婪算法 每一步当前最优解 局部利益最大化背包问题:有权图问题:前提:局部最优策略能导致产生全局最优解钱币找零问题:区间问题:分治:分而治之 通过递归来编程实现(递+归)适用:排序;分解为独立小问题;独立小问题可解;分解和合并操作复杂度不高10GB订单数据按照价格排序 分布式系统回溯backMethod:枚举的搜索尝试过程,选优搜索法 回溯状态点为回溯点八皇后问题:8*8棋盘格 行 列 斜 线上不能有2个皇后动态规划原创 2020-07-03 09:55:05 · 157 阅读 · 0 评论 -
堆 图 字符串匹配算法(复习总结)
堆 图 字符串匹配算法(查找算法)堆:Heap 一种树。1.完全二叉树;2.任意结点值大于等于(小于等于)子树的任意结点堆的分类:1.大顶堆:结点值大于等于子树任意结点;2.小顶堆:结点值小于等于子树任意结点。堆的存储:数组 父结点i 左子结点 2*i 右子结点 2*i+1堆的实现:data(数组) size count堆中插入元素:堆化操作:从下往上,从上往下1.插入底部;2.堆化操作,调换(当前结点和父结点),直到满足2.删除堆顶元素堆 时间复杂度:o(logn)堆排序时间复杂度:o(n原创 2020-07-03 09:52:06 · 246 阅读 · 0 评论 -
算法2:散列表 树 平衡二叉查找树(复习总结)
散列表 哈希算法 树形结构散列表:概念 函数 应用散列表Hash Table:哈希表 根据键key 数组演变来的key 散列函数 table散列函数:hashValue = hash(key) 将给定的key转换为特定的散列值要求:1.计算得到的散列值必须大于等于0的正整数,作为数组下标;2. if key1==key2, hash(key1)==hash(key2); 3. if key1!=key2, hash(key1)!=hash(key2)好的散列表满足:1.散列函数不能太复杂;2.原创 2020-07-03 09:46:19 · 148 阅读 · 0 评论 -
算法1:递归 排序 二分查找(复习总结)
算法性能好坏分析:时间复杂度 渐近复杂度分析:时间复杂度 空间复杂度忽略低阶、常量、系数代码循环次数最多原则、加法原则、乘法原则可数的:o(1)线性的:o(n)对数:o(logn) o(nlogn)最好/最坏/平均时间复杂度空间复杂度 渐近o(1) o(n) o(n2)递归算法思想:概念 条件 问题 递归和循环 常见应用概念:编程技巧 递回 recursion 递+归 去+回 递推公式条件:规律(递归表达式);出口(终止条件)问题:堆栈溢出(递归深度大,临时变量进入栈,内原创 2020-07-02 09:56:59 · 288 阅读 · 0 评论 -
数据结构:数组 链表 栈 队列 (复习总结)
数组:线性 连续内存空间 相同数据类型逻辑结构 物理结构数组下标=索引 a[0]高效随机访问获取 低效插入和删除多次删除(只标记)统一执行 垃圾箱删除的道理数组 容器类 ArrayList vector容器中元素添加 获取Object[] 数组 构造扩容机制 原有容量的1.5倍链表:非连续 非顺序插入和删除元素非常方便,查找麻烦结点:element 数据域(数据元素) 指针域next(下一个元素的指针,引用,最后一个是null)零散的内存块链表类型:单 循环 双向 双向循环..原创 2020-07-02 09:48:25 · 233 阅读 · 0 评论