算法与数据结构
Java侠
慢慢来,比较快
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构-数组
什么是数组 定义:用一片连续内存来保存同一类型数据的线性表数据结构 这个定义中有两个要点: 线性表:什么是线性数据结构?元素之间只有前后关系的一种数据结构,如数组、链表、栈、队列。 而与之相反,非线性表,是指元素之间不是简单前后关系的数据结构,如堆、图、树等。 连续内存和同一数据类型 正是因为连续内存和相同数据类型这个特点,才使得数组的随机下标访问有了O(1)的时间复杂度,那么具体是怎么做到的呢...原创 2019-03-22 08:18:15 · 443 阅读 · 0 评论 -
算法与数据结构学习资源整理
最近了整理一下算法和数据结构的资源,作为自己学习之用,现在列出来也供大家参考 1. 知乎上这个答案已经整理的非常详细了 https://zhuanlan.zhihu.com/p/23191006 2. 书籍: 各种算法相关的书籍及其豆瓣评分(2019年3月16日) 入门: 《算法图解》8.4分 《大话数据结构》 7.9分 《啊哈!算法》 7.4分 经典: 《数据结构与算法分析:》9.0,有三个版本...原创 2019-03-18 08:15:59 · 1059 阅读 · 0 评论 -
数据结构-链表
由于单链表只有一个方向的指针,而又有一些情况是需要对链表进行倒序的,比如面试的时候_,所以还是需要掌握的。主要以下几种方式来进行反转,实现难度易到难依次为: 借助栈 ...原创 2019-03-30 16:04:48 · 329 阅读 · 0 评论 -
数据结构-队列
概念 定义 基础队列类型 顺序队列 链式队列 其他队列类型原创 2019-04-05 10:11:17 · 391 阅读 · 0 评论 -
理解递归
什么是递归 递归(英语:Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 什么时候用递归 如果一个问题可以分解为多个子问题,每个子问题只是规模不同但解法是一致的,并且分解到最后有一个终止条件,那么就可以用递归来解决。 递归的优缺点 优点 代码简洁,容易实现 缺点及解决办法 重复计算:重复计算 空间复杂度高 栈溢出 如何避免递归的问题 经典递归算法及其实现 斐波...原创 2019-04-12 08:31:54 · 301 阅读 · 0 评论 -
数据结构-栈
什么是栈 栈是一种线性操作数据结构,它只允许从一端也就是栈顶进行插入和删除操作,插入称为入栈,删除称为出栈,以下是栈的结构图: 在我们生活中,有很多栈结构,比如手枪里的弹夹,将子弹压到弹夹,就是入栈,发射时子弹出栈: 栈的应用场景 刚开始接触栈的时候,总觉它好像并没有什么作用,它能完成的功能,用其他数据结构也能完成,而且他只能在一端进行操作,似乎很有局限,后来接触多了,发现很多地方都有它的存在,...原创 2019-04-12 20:29:32 · 473 阅读 · 0 评论 -
算法-排序
排序算法 分析角度 执行效率 有序度 稳定性 内存消耗 常用排序算法及其实现 O(n^2) 冒泡排序 选择排序 插入排序 O(nlogn) 归并排序 快速排序 O(n) 桶排序 计数排序 基数排序 各种排序对比 ...原创 2019-05-04 18:33:41 · 270 阅读 · 0 评论
分享