数据结构与算法
文章平均质量分 91
Robin_Pi
所有觉得难得东西,只是因为没有真正理解最基础的概念
展开
-
数据结构与算法打卡(1)复杂度分析方法(总结)
文章目录时间复杂度WhyHow空间复杂度总结上篇已经讲过,复杂度分析非常重要,是数据结构与算法的精髓。这篇就围绕时间、空间复杂度分析的内容展开。时间复杂度Why评估算法的执行效率方法可以分为两大类:事后统计法、复杂度分析法。但是总不能在任何情况下都把算法跑一遍吧,所以事后统计法存在很大的局限性:测试结果非常依赖测试环境测试环境中硬件的不同会对测试结果有很大的影响。所以比较两种算法的执行效率,很有可能出现换一台机器出现不同的结果的情况。测试结果受数据的影响很大这里包含了多个层面,原创 2021-05-21 13:50:29 · 855 阅读 · 0 评论 -
数据结构与算法打卡(0):如何学数据结构与算法
课程链接链接:打卡召集令 | 60 天攻克数据结构与算法 学习路线原创 2021-02-05 17:33:35 · 178 阅读 · 0 评论 -
数据结构与算法(5)排序算法(理论)
排序算法1. 排序算法时间复杂度O(n^2)的三种排序算法冒泡排序(Bubble Sort)插入排序(Insertion Sort):放在已排序区间比较选择排序(Selection Sort):在未排序区间进行比较希尔排序三种时间复杂度是 O(n^2) 的排序算法小结时间复杂度为 O(nlogn) 的三种排序算法归并排序(Merge Sort)快速排序(Quicksort)2. 排序算法的三个分...原创 2020-04-24 08:11:06 · 270 阅读 · 0 评论 -
数据结构与算法(4)栈
栈概念操作实现后进者先出,先进者后出,就是典型的“栈”结构。概念从栈的操作特性上来看,栈是一种**“操作受限”的线性表**,只允许在一端插入和删除数据。从功能上来说,数组或链表可以替代栈,但特定的数据结构是对特定场景的抽象,数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,自然也就更容易出错。当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特...原创 2020-04-23 22:34:56 · 144 阅读 · 0 评论 -
数据结构与算法(3)链表
链表链表的存储结构三种最常见的链表结构单链表循环链表双向链表双向循环链表三种基本操作空间换时间&时间换空间对于执行较慢的程序,可以通过消耗更多的内存(空间换时间)来进行优化;对于内存消耗过多的程序,可以通过消耗更多的时间(时间换空间)来降低内存的消耗。链表的存储结构数组需要一块连续的内存空间来存储,需要事先申请需要申请内存空间;而链表通过“指针”将一组零散的内存块串联起来使用,不...原创 2020-04-21 13:17:57 · 193 阅读 · 0 评论 -
数据结构与算法(2)数组
数组数组概述数组操作高效操作:随机访问低效操作:插入、删除容器vs数组为什么数组要从 0 开始编号?警惕数组的访问越界问题数组概述数组是一种最基础的数据结构,在大部分编程语言中,数组都是从 0 开始编号的。线性表(Linear List),就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向,包括数组,链表、队列、栈等。数组(Array)是一种线性表数据结构。它用一组连...原创 2020-04-19 17:49:47 · 238 阅读 · 0 评论 -
数据结构与算法(1)入门篇
数据结构与算法:入门篇数据结构与算法整体框架如何学抓重点方法复杂度分析大 O 复杂度表示法时间复杂度度 分析三个比较实用的分析方法多项式时间复杂度度分析1. O(1)2. O(logn)、O(nlogn)O(m+n)、O(m∗n)空间复杂度分析渐进复杂度四种情况下时间复杂度分析时间复杂度分析示例数据结构与算法整体框架如何学抓重点20 个最常用的、最基础数据结构与算法:10 个数据结...原创 2020-04-19 16:34:41 · 425 阅读 · 0 评论 -
万门大学数据结构与算法进阶(2)Array 数组
Array 数组概念和核心例题1. 洗牌问题概念和核心数组:盛有单一类型固定数量值的容器类内存表示:连续的固定的长度以0开始的索引边界检查深入理解:内存中连续 - 单一类型(空间/间隔相同)- 便于地址记录 - 索引访问 - 时间:O(1)Array 分析例题1. 洗牌问题...原创 2020-04-19 10:42:39 · 222 阅读 · 0 评论 -
万门大学数据结构与算法进阶(2)ArrayList 动态数组
ArrayArrayList 动态数组Python Array vs. ListArray Module - Sequence of fixed-type datapython stringListArrayList 动态数组Basic IdeaStore data in sequential orderStored contiguouslyRandom access, variab...原创 2020-04-19 10:07:32 · 298 阅读 · 0 评论 -
LeetCode
刷题资源收集刷题记录问题总结资源收集1.两个月刷题计划地址: leetcode 1~400知识点&题型总结&leetcode对应题表 来源:博客园更多是个值得的学习的好博主,有规划、有总结、有分享,等很多其它内容值得参考!附:胡晓曼老师(Charlotte),高级算法工程师 ,博客专家;(是个大佬啊)刷题记录问题总结...原创 2020-04-05 21:54:55 · 186 阅读 · 0 评论 -
万门大学数据结构与算法进阶(1)介绍
目录课程安排算法分析运行时间(时间复杂度)评估算法运行时间近似记法主项定理P与NP主定理课程安排算法分析运行时间(时间复杂度)评估算法运行时间近似记法big - o :上界big - θ :上下界big - Ω:下界主项定理P与NPPolynomial 多项式类问题Non-Deterministic Polynomial 非确定多项式问题主定理...原创 2020-02-06 18:47:06 · 880 阅读 · 0 评论 -
小白学习之数据结构
数据结构绪论数据——符号数据元素——记录——人数据项——数据的最小单位——手、姓名等数据对象是性质相同的数据元素的集合,是数据的子集。在实际应用中,我们都将数据对象简称为数据。数据结构——关系数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。结构按照视点的不同,我们把数据结构分为逻辑结构和物理结构。逻辑结构:是指数据对象中数据元素之间的相互关系。集合结构(平等—...原创 2019-12-27 20:41:54 · 300 阅读 · 0 评论 -
小白学习——数据结构与算法基础(基于python)——树
主要记录:树和树的算法内容来源:书籍、网络和个人总结理论树的由来树的三个属性层次性,即树是按层级构建的,越笼统就越靠近顶部,越具体则越靠近底部。一个节点的所有子节点与另一个节点的所有子节点无关。叶子节点都是独一无二的。术语节点节点是树的基础部分。它可以有自己的名字,我们称作“键”。节点也可以带有附加信息, 我们称作“有效载荷”。边边是树的另一个基础部分。两个节点通过一条...原创 2019-11-26 12:16:46 · 290 阅读 · 0 评论