数据结构与算法-归并排序 算法

数据结构与算法-归并排序

原理介绍 归并排序 其实思想很简单,如上图,就是将待排序数组,分成若干个小数组,将最终的两个数据排序后,在进行合并。简而言之,就是分而治之的思想。将一个大问题,分成若干个小问题来解决,小问题解决了之后...
阅读全文
算法系列之递归 算法

算法系列之递归

如何理解递归? 把一个直接调用自己或通过一系列的调用语句间接的调用自己的函数,称做递归函数。 递归的用途:文件目录搜索、DFS 深度优先搜索、前中后序二叉树遍历等等。 递归需要满足的三个条件 一个问题...
阅读全文
数据结构系列之队列 数据结构

数据结构系列之队列

如何理解“队列” 队列(queue) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。现实生活中火车排队买票就是这种模式,先进先出(FIFO)。 队列与栈的异同 相同点:都是操作受限的线性...
阅读全文
单向循环链表常用方法代码实现 数据结构

单向循环链表常用方法代码实现

什么是单向循环链表? 将单链表中终端节点的指针端由空指针改为指向头节点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。 如下图所示: 从上图可以看出,其循环就是尾节点的n...
阅读全文
单链表常用方法代码实现 数据结构

单链表常用方法代码实现

什么是单链表? n个节点链结成一个链表,即为线性表(a1,a2,……,an)的链式存储结构,因为此链表的每个节点中只包含一个指针域,所以叫做单链表。 单链表是通过每一个节点的指针域将线性表的数据元素按...
阅读全文
数据结构系列之栈 数据结构

数据结构系列之栈

如何理解栈? 栈是限定仅在表尾进行插入和删除操作的线性表,并满足后进者先出,先进者后出的特性。 为了加深概念,举个例子大家小时候一定玩过玩具手枪吧,手枪的弹夹其实就是一个数据结构“栈”的模型。如下图:...
阅读全文
数据结构系列之链表 数据结构

数据结构系列之链表

链表 不是一块连续的空间,它是通过“指针”将一组零散的内存块串联起来使用。 我们来看看链表与数组的差异 很明显,数组在内存中是一连串相邻的区域组成的,而链表则是由不连续的指针而组成的。 链表的分类 链...
阅读全文
数据结构系列之数组 数据结构

数据结构系列之数组

什么是数组? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 数组的特性 1、线性表:顾名思义,线性表就是数据排成像一条线的结构。每个线性表上的数据最多...
阅读全文
算法复杂度分析 数据结构

算法复杂度分析

什么是复杂度分析? 1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。3.分别用时间复杂度和空间复杂度两个概念来描...
阅读全文
如何学好数据结构与算法? 数据结构

如何学好数据结构与算法?

最近在学习Google大神王争老师开设的《数据结构与算法之美》的专栏,这里略作小结,也希望可以把学到知识有效的消化。 为什么要学习数据结构与算法? 建立空间复杂度与时间复杂度意识,提高代码质量设计系统...
阅读全文