全面学习数据结构与算法
深入学习,系统总结下目前学到的算法
Activity-Pj
zpj
展开
-
个人笔记-数组算法
public class array {//给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。//不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。/*** 思路分析:* 前提条件是有序的,例如 1 1 2 2 4 4 4 5 6 6* 可参考冒泡排序思维,选出来参照元素,然后交换,挪动数组下表指针* 1,定义比较位索引,发现不同的,则后移 然后将不同的赋值给当前移动到的位置*原创 2020-05-31 23:16:51 · 207 阅读 · 0 评论 -
个人笔记-哈夫曼树核心原理编码
/** * * 哈夫曼树 * 所有结点带权路径长度之和最小 * * 核心思想是:出现频率最高,权重最大的数据节点,分布在二叉树的最头部层级,减少检索深度。 */public class HuffmanTree { //根节点 Node root; /** * 构建一棵哈夫曼树 * 1,前提是排序 首先对传进来的数据进行从小到...原创 2020-04-15 00:10:00 · 319 阅读 · 0 评论 -
个人笔记-排序二叉树(查找树)
排序二叉树的概念和主要操作增加,查找,删除。主要思路和操作都在代码中注释。/** * 排序二叉树 * * 规则 * 空树或者只有一个节点 * * 一个根节点,左侧所有值都小于,右侧所有值都大于 * 左右子树都为二叉排序树 * 要求不能有重复数据(业务上可以适当存在) * * Created by zhangpengju on 2020/4/8. */...原创 2020-04-09 23:24:22 · 353 阅读 · 0 评论 -
个人笔记-分治法中快速排序与归并排序
1,分治法:把整体分为若干个单元块,然后去解决问题。最后每个单元块解决后,合并出最后结果。 最常见的就是递归调用。将一个基本处理单元,反复调用。最终解决问题。 关于排序中,有两种算法很好的提现这种思想。分别为:快速排序法和归并排序法。一,快速排序 主要原理: 在一组数据头或者尾部,拿出一个元素,然后分别在头部和尾部滑动指针,和拿出的数比大小。...原创 2020-04-06 20:55:57 · 268 阅读 · 0 评论 -
开篇(一)数据结构与算法概要
1,算法,一些列解决问题的方法。数据结构,数据组织在一起的方式。1,数据结构分为:逻辑结构和存储结构 逻辑结构为:线性结构,树形结构,图形结构,结合结构 存储结构为:表,堆栈,队列,数组,树,二叉树,图。衡量算法优劣的标准:空间复杂度+时间复杂度+应用场景(最重要,不同的场景,选择不同) 大部分研究的是时间复杂度(目前设备存储较为富裕)复杂度...原创 2020-03-31 23:58:58 · 159 阅读 · 0 评论