数据结构与算法学习
数据结构与算法课程学习
小小洪人
这个作者很懒,什么都没留下…
展开
-
Python寻找二维数组中指定行的索引
Python实现二维数组中寻找特定行也可实现:去重特定行原创 2022-11-04 00:14:14 · 1117 阅读 · 1 评论 -
06 - 递归
如何理解递归?举个例子周末去到女朋友去看电影,但是你们不知道现在自己处于第几排,而且电影院里面很黑,看不清,也没法数。此时如何做呢?此时递归就派上用场了。你可以问前面一排人他在第几排,只要在他的数字上加上1,就是自己现在在的排数了!但是前面的人也看不清,所以他也问前面的人。这样一排一排的问,直到问到第一排的人,说我在第一排。这样一排一排的把数字传回来,你就知道答案了!!!递归原型非常标准的递归分解过程可分为:去的过程叫递...原创 2020-11-26 11:38:57 · 276 阅读 · 0 评论 -
05 - 队列
队列定义先进者先出,是队列最突出的特征!!!队列是一种操作受限的线性数据结构队列的类型顺序队列用数组实现的队列// 用数组实现的队列public class ArrayQueue { // 数组:items,数组大小:n private String[] items; private int n = 0; // head表示队头下标,tail表示队尾下标 private int head = 0; private int tail = 0; // 申请一个大小原创 2020-10-30 14:36:33 · 89 阅读 · 0 评论 -
据结构与算法之美 - 04 栈
栈的定义后进者先出,先进者后出,这就是典型的栈结构!!!当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们选择栈这种数据结构!!!如何实现一个栈顺序栈用数组来实现的链式栈用链表实现的栈的应用支持动态扩容的顺序栈底层依赖一个支持动态扩容的数组当数组满了以后,就申请一个更大的数组,将原来的数据搬移到新数组中栈在函数调用中的应用int main() { int a = 1; int ret = 0; int r原创 2020-10-30 14:02:20 · 105 阅读 · 0 评论 -
数据结构与算法之美-03链表
链表类型单链表循环链表双向链表双向循环链表注:这里暂时先只介绍常用的链表类型链表与数组的对比内存分布由上图可知:数组需要一块连续的内存来存储链表需要一组零散的内存块来存储如果我们申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。但是申请链表就不会有问题!!!时间复杂度对比优缺点对比数组:缺点:大小固定优点:简单实用,访问效率更高(可借助CPU缓存机制)链表:缺点:内存原创 2020-06-08 11:18:07 · 121 阅读 · 0 评论 -
01 - 数据结构与算法总览
精通一个领域的方法chunk it up 切碎知识点学会使用脑图对知识点进行切分deliberate practing 刻意练习刻意练习 – 过遍数 (五毒神掌的方法)feedback up 反馈即时反馈通过做题过程获取知识主动型反馈(自己去找)高手代码 (Github,LeeCode等)观看大佬写代码被动式反馈(高手给自己值点)cod...原创 2019-12-27 12:07:28 · 136 阅读 · 0 评论 -
数据结构与算法之美学习笔记01-复杂度分析
大O复杂度表示法 表示代码执行时间随数据规模增长的变化趋势,也叫做渐进时间复杂度,简称时间复杂度时间复杂度分析的四个比较常用的方法只关注循环执行次数最多的一次代码 忽略掉代码中的常量、低阶、系数,秩只需记录一个最大阶数的量级就可以了。加法法则:总复杂度等于量级最大那段代码的复杂度 如果 T1(n)=O(f(n)),T2(n)=O(g(n));那么T(n) = T1...原创 2019-10-10 09:44:17 · 227 阅读 · 0 评论 -
数据结构与算法之美学习笔记02 - 数组
数组的基本概念1.线性表:线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。非线性表:数据之间并不是简单的前后关系2. 连续的存储空间和相同类型的数据一维数组的寻址公式a_address[i] = base_address + i * data_type_size二维数组的寻址公式a[m][n] = {}a[i][j]_address =...原创 2019-10-11 13:16:23 · 110 阅读 · 0 评论