用堆排序只能过50%, TLE警告 时间复杂度分析 堆排序过程中是直接将数据当作乱序处理, 但乘法表是含有一定的顺序信息的, 条件比完全乱序强, 所以需要一个能把顺序信息用起来的方法 堆排序$(n m)log(n m)+klog(n m)=(n m)log(n m)$ ...
分类:
其他好文 时间:
2020-03-29 10:38:57
阅读次数:
63
[TOC] 前言 本篇博客主要是记录手写这些这数据结构的底层实现,加深对线性结构的理解,实现自己的一个小型数据结构库,也会进行简单的时间复杂度分析,对不同的实现进行比较和优化,即侧重于代码实现。由于数据结构是实践性比较强的一个科目,希望大家在看这篇博客时,自己也去写一下代码,看一下运行结果是不是自己 ...
分类:
其他好文 时间:
2020-03-29 10:27:32
阅读次数:
165
什么是数据结构?什么是算法 广义 数据结构:一组数据的存储结构 算法:操作数据的一组方法 例子:图书馆对书籍的分门别类存储=数据结构,查找一本书的方法=算法 狭义 著名的数据结构和算法:队列,栈,堆,二分查找,动态规划 重点:复杂度分析 10个常用的数据结构:数组、链表、栈、队列、散列表、二叉树、堆 ...
分类:
编程语言 时间:
2020-03-29 01:14:09
阅读次数:
70
一、思维导图 二、重要概念 1.算法分析: 1.时间复杂度分析:T(n)与函数规模大小相关。 2.空间复杂度分析:与临时变量所占空间有关。 3.递归算法时间与空间复杂度:都应该写出递推式,通过求解递推式来获得时间复杂度和空间复杂度。 2.线性表: 1.顺序表:有随机存取特性,但其算法时间主要花费在删 ...
分类:
编程语言 时间:
2020-03-28 20:05:31
阅读次数:
104
真正掌握了复杂度分析,可以说 DSA 便掌握了一小半。 复杂度分析分为:时间复杂度分析、空间复杂度分析。 时间复杂度的定义: 并不是指代码执行的具体、确定时间。 它表示的是一个算法执行效率与数据规模增长的变化趋势。 即便代码需要执行成千上万次,只要它不随数据规模变化而变化,那么它的复杂度就是 O(1 ...
分类:
其他好文 时间:
2020-03-28 13:15:26
阅读次数:
91
AC自动机 ~~Accepted~~ Aho Corasick 性质 AC自动机/AC算法 (Aho Corasick automaton),是著名的多模式串匹配算法。 前置知识 1. 字典树( 重要 ) 2. KMP算法(了解Next数组的作用) 典例与算法复杂度分析 典型例题是:给定一个主串 S ...
分类:
编程语言 时间:
2020-03-27 09:11:10
阅读次数:
73
时间复杂度 时间复杂度的分析 只关注循环执行次数最多的一段代码,因为使用大O表示法,其他执行次数较少的复杂度可以忽略 加法法则:总复杂度等于量级最大的那段代码的复杂度 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积 常见的时间复杂度示例 复杂度从低阶到高阶为:(复杂度越高阶,执行效率越低) ...
分类:
编程语言 时间:
2020-03-23 22:25:12
阅读次数:
106
(一)学习小结 1.初步了解基本概念和术语(数据、数据元素、数据项、数据对象、数据结构、算法)。 2.个人认为重点是要掌握ADT的定义、算法时间复杂度分析。 (二)心得、困难、目标 1.书要多读几遍,结合视频才会有收获,才明白学习本章主要应掌握哪些点。 2.视频中提到的“分而治之”有点不理解,ADT ...
分类:
其他好文 时间:
2020-03-21 23:25:13
阅读次数:
75
关注公众号MageByte,设置星标点「在看」是我们创造好文的动力。后台回复“加群”进入技术交流群获更多技术成长。本文来自MageByte-青叶编写上次我们说过时间复杂度与空间复度,列举了一些分析技巧以及一些常见的复杂度分析比如O(1)、O(logn)、O(n)、O(nlogn),今天会继续细化时间复杂度。1.最好情况时间复杂度(bestcasetimecomplexity)2.最坏情况时间复杂度
分类:
其他好文 时间:
2020-03-16 23:30:17
阅读次数:
59
一、Array 1.数组 2.动态数组 3.数组实现队列 4.数组实现循环队列 5..数组实现栈 复杂度分析: 二、LinkedList 1.链表 2.链表实现队列 3.链表实现栈 复杂度分析: 三、BinaryTree 1.二叉树 复杂度分析: 四、Set 1.链表实现集合 2.二叉树实现集合 复 ...
分类:
其他好文 时间:
2020-02-28 14:09:17
阅读次数:
60