
搞定数据结构与算法
文章平均质量分 96
本专栏记录了我在学习数据结构与算法时的笔记,按照由浅到深记录,适合初学者学习。专栏里的内容来自于本人的学习笔记、其他博主的博文以及极客时间中的《数据结构与算法之美专栏》
pcwl1206
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法】之图的基本概念 --- 第十六篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。上一篇:堆的详解:https://blog.youkuaiyun.com/pcwl1206/article/details/84608381目 录:一、基本概念1.1 图的定义1.2 图中的术语1.3 图的分类二、图的存...转载 2018-12-03 16:08:03 · 788 阅读 · 1 评论 -
【数据结构与算法】之堆的详解 --- 第十五篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。上一篇:红黑树:https://blog.youkuaiyun.com/pcwl1206/article/details/84227825目 录:一、堆的基本概念二、堆的实现1 往堆中插入一个元素2、删除堆顶元素3、时间复杂度...转载 2018-11-29 15:35:34 · 450 阅读 · 0 评论 -
【数据结构与算法】之红黑树 --- 第十四篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。树是一种非线性数据结构,这种数据结构要比线性数据结构复杂的多,因此分为三篇博客进行讲解:第一篇:树的基本概念及常用操作的Java实现(二叉树为例)第二篇:二叉查找树第三篇:红黑树第三篇:红黑树开篇说明:对于红黑树的学习,...原创 2018-11-19 14:41:23 · 534 阅读 · 0 评论 -
【数据结构与算法】之二叉查找树 --- 第十三篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。树是一种非线性数据结构,这种数据结构要比线性数据结构复杂的多,因此分为三篇博客进行讲解:第一篇:树的基本概念及常用操作的Java实现(二叉树为例)第二篇:二叉查找树第三篇:红黑树本文目录1、二叉查找树的基本概念2、二...原创 2018-11-17 13:22:53 · 490 阅读 · 0 评论 -
【数据结构与算法】之树的基本概念及常用操作的Java实现(二叉树为例) --- 第十二篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。树是一种非线性数据结构,这种数据结构要比线性数据结构复杂的多,因此分为三篇博客进行讲解:第一篇:树的基本概念及常用操作的Java实现(二叉树为例)第二篇:二叉查找树第三篇:红黑树本文目录:1、基本概念1.1 什么是...原创 2018-11-16 18:11:49 · 531 阅读 · 0 评论 -
【数据结构与算法】之哈希算法 --- 第十一篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。开篇说明:本文内容大部分出自于极客时间中的《数据结构与算法之美》专栏,Mark下来,作为个人笔记,方便日后复习。在上一篇博客中,讲解了散列表的用法,如果你对散列表还不是很了解,可以点击此链接进行查看:https://blog.csdn....转载 2018-11-09 15:34:29 · 2172 阅读 · 0 评论 -
【数据结构与算法】之散列表(Java实现)---第十篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。目录:一、散列表基本概念1、基本定义2、散列表思想二、散列函数1、定义2、散列函数设计的基本要求3、如何设计散列函数三、散列冲突1、开放寻址法2、链表法3、如何选择散列冲突解决的方法四、装载因...原创 2018-11-03 20:58:09 · 5961 阅读 · 2 评论 -
【数据结构与算法】之跳表(Java实现)---第九篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。说明:跳表是一种不太常用的数据结构,很多书籍上甚至都没有提及过,我也是学习极客时间中的《数据结构与算法之美》专栏的时候才知道这种数据结构,但是感觉这种数据结构真的有很多优点,看了一些博客讲的都很片面,所以在这里决定把专栏中的这篇文章mark...原创 2018-10-30 17:35:10 · 17773 阅读 · 14 评论 -
【数据结构与算法】之二分查找(Java实现)---第八篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、二分查找的基本介绍1、二分查找:是一种查询效率非常高的查询算法,又称为折半查找。2、要求:(1)必须采用顺序存储结构,一般都是使用数组; (2)必须按关键字大小有序排列。3、基本思想:...原创 2018-10-27 23:04:31 · 369 阅读 · 0 评论 -
【数据结构与算法】之排序全家桶(十大排序详解及其Java实现)---第七篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。本篇文章汇总了10种场常见的排序算法,篇幅较长,可以通过下面的索引目录进行定位查阅:一、排序的基本概念二、十大经典排序算法1、冒泡排序2、插入排序3、希尔排序4、选择排序5、归并排序6、快速排序7、桶排序...原创 2018-10-21 09:56:35 · 796 阅读 · 1 评论 -
【数据结构与算法】之递归的基本介绍---第六篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、递归的基本概念1、定义递归:指的是一个过程,函数直接或者间接的调用自己,此时则发生了递归。递归的两个要素:递推公式和递归边界可以看到递归的定义非常的简洁,但是理解起来就没有这么容易了。不知道大家是否和我一样,在遇到递...原创 2018-10-15 15:25:27 · 914 阅读 · 0 评论 -
【数据结构与算法】之队列的基本介绍及其数组、链表实现---第五篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、队列的基本概念1、定义队列是一种先进先出的线性表。它只允许在表的前端进行删除操作,而在表的后端进行插入操作,具有先进先出、后进后出的特点。进行插入操作的一端成为队尾(tail),进行删除操作的一端称为队头(head)。当队列中...原创 2018-10-14 21:35:48 · 459 阅读 · 0 评论 -
【数据结构与算法】之栈的基本介绍及其数组、链表实现---第四篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、栈的基本介绍1、栈的基本概念栈是一种限制在一端进行插入和删除操作的线性表数据结构。栈中有两个比较重要的操作:push(压栈:将元素压入栈顶)和pop(弹栈:从栈顶弹出一个元素)。都满足先进后出、后进先出的特点!从图中...原创 2018-10-14 10:23:52 · 345 阅读 · 0 评论 -
【数据结构与算法】之数组---第二篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。先来看下数组的定义:数组(Array):是一种线性表结构。它用一组连续的内存空间来存储一组具有相同类型的数据,同时它也是最基础的数据结构。提到数组就不得不说线性表: 数据排成一条线,每个线性表上的数据最多只有前后两个方向。常见的...原创 2018-10-13 14:18:04 · 514 阅读 · 0 评论 -
【数据结构与算法】之单链表、双链表、循环链表的基本介绍及其Java代码实现---第三篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、链表的基本介绍链表的定义:链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。----Algorithms Fourth Edition...原创 2018-10-13 14:19:15 · 890 阅读 · 0 评论 -
【数据结构与算法】之复杂度分析---第一篇
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。一、首先明确两个问题:1、为什么需要对算法进行复杂度分析?实际上一个算法执行所耗费的时间和空间是无法从理论上准确算出来的,必须在计算机上实际运行才知道,但是我们不可能对每个算法都先在计算机上运行一遍,再决定采用其中效率最高的那个。所...原创 2018-10-11 17:26:10 · 650 阅读 · 0 评论