![](https://img-blog.csdnimg.cn/20200602125342637.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
算法学习和总结,收费专栏。
部分免费的算法类Blog,我会放在计算机专栏中。
GUI Research Group
机器学习, 生物信息
展开
-
算法与数据结构(part6)--单向链表
学习笔记,仅供参考,有错必纠 参考自:单链表头指针、头结点、头元结的辨析 文章目录算法与数据结构–基于python链表为啥需要链表什么是链表单向链表什么是单向链表单列表的操作节点的实现单链表的实现链表与顺序表的对比 算法与数据结构–基于python 链表 为啥需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来不是很灵活;而链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 什么是链表 链表结构可以充分利用计算机内存空间,实原创 2020-07-02 14:10:59 · 225 阅读 · 0 评论 -
算法与数据结构(part5)--栈与队列
学习笔记,仅供参考,有错必纠 文章目录算法与数据结构–基于python栈与队列栈是什么栈(ADT)的操作栈的实现队列队列是什么队列的操作队列的实现双端队列双端队列是什么双端队列的操作双端队列的实现 算法与数据结构–基于python 栈与队列 栈是什么 栈的概念 栈(stack)是一种容器,可存入数据元素、访问元素、删除元素。 它的特点在于只能允许在容器的一端(称为栈顶端指标)进行加入数据(push)和输出数据(pop)的运算。 没有了位置概念,保证任何时候可以访问、删除的元素都是此原创 2020-07-02 10:26:13 · 220 阅读 · 0 评论 -
算法与数据结构(part4)--顺序表
学习笔记,仅供参考,有错必纠 文章目录算法与数据结构–基于python顺序表什么是线性表什么是顺序表顺序表的基本形式顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式扩容策略顺序表的操作插入元素删除元素Python中的顺序表列表的基本实现 算法与数据结构–基于python 顺序表 什么是线性表 在程序中,经常需要将一组数据元素作为整体管理和使用,我们需要创建一种元素组,并用变量记录它们。 一组数据中包含的元素个数可能发生变化(增加或删除元素)。 对于这种需求,最简单的解决方案便是将原创 2020-07-02 09:21:20 · 316 阅读 · 0 评论 -
算法与数据结构(part3)--数据结构概述
学习笔记,仅供参考,有错必纠 文章目录算法与数据结构--基于python数据结构什么是数据结构数据结构的概念抽象数据类型(ADT) 算法与数据结构–基于python 数据结构 什么是数据结构 我们为了解决问题,需要将数据保存下来,然后根据数据的存储方式来设计算法,数据的存储方式不同,会导致我们需要用不同的算法进行处理数据。我们希望算法解决问题的效率越快越好,于是我们就需要考虑数据究竟如何保存的问题,这就是数据结构。 如果说算法是一种解决问题的思路,那么数据结构就是思路的载体。 数据结构的概念原创 2020-07-01 23:37:54 · 241 阅读 · 0 评论 -
算法与数据结构(part2)--Python内置类型性能分析
学习笔记,仅供参考 文章目录算法与数据结构--基于pythonPython内置类型性能分析timeit模块计时器类timeit.Timer计时器类下的timeit.Timer.timeit方法举个例子list内置操作的时间复杂度dict内置操作的时间复杂度 算法与数据结构–基于python Python内置类型性能分析 timeit模块 该模块可以用来测试一段Python代码的执行速度,该模块定义了三个函数(timeit, repeat, default_timer)和一个公共类(timeit.T原创 2020-07-01 22:56:11 · 244 阅读 · 0 评论 -
算法与数据结构(part1)--算法简介及大O表示法
学习笔记,仅供参考 文章目录算法与数据结构--基于python数据结构和算法简介算法引入例题A算法的概念例题A的优化算法效率的衡量时间复杂度与大O记法例题A的时间复杂度如何理解大O记法最坏时间复杂度时间复杂度的几条基本计算规则常见的时间复杂度 算法与数据结构–基于python 数据结构和算法简介 什么是数据结构 数据结构就是一些有关系的数据的集合,有顺序表,链表,栈,队列,树,图等结构, 我们的程序就等于数据结构+算法。 什么是算法 算法(Algorithm)是指解题方案的准确而完整的描述原创 2020-07-01 21:33:53 · 495 阅读 · 0 评论 -
小白的算法初识课堂(part9)--SHA及Simhash算法
学习笔记 学习书目:《算法图解》- Aditya Bhargava 安全散列算法(SHA) 在学SHA算法之前,我们先回顾一下前几个Blog所学的散列函数。 散列函数是这样的一个函数,即无论我们给它什么样的数据,它都还我们一个数字。如果用专业术语来表达的话,我们可以说,散列函数“将输入映射到数字”。 有一种散列函数是安全散列算法(secure hash algorithm,SHA)函数。当...原创 2020-05-01 22:50:15 · 297 阅读 · 0 评论 -
小白的算法初识课堂(part8)--贪婪算法
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录教室调度问题集合覆盖问题近似算法代码实现NP完全问题 教室调度问题 假如我是一个学校的校长,我们学校有如下课程表: 课程 开始时间 结束时间 多元统计分析 9:00AM 10:00AM 时间序列分析 9:30AM 10:30AM 计量经济学 10:00AM 11:00AM 数据挖掘 10...原创 2020-05-01 22:05:36 · 339 阅读 · 0 评论 -
小白的算法初识课堂(part7)--狄克斯特拉算法
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录狄克斯特拉算法具体步骤实现术语跳蚤市场具体步骤实现负权边python实现 狄克斯特拉算法 在上一个Blog中,我们用广度优先搜索找到了从家到公园换乘最少的路线,即家–1-->路–>A–3路–>E–5路–>公园。 但是有的时候,我们要寻找的是从家到公园耗时最短的路线,这时广度优先搜索就不顶...原创 2020-05-01 20:26:55 · 438 阅读 · 0 评论 -
小白的算法初识课堂(part6)--广度优先搜索
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录图简介图是啥广度优先搜索寻找最短路径队列实现图实现算法运行时间 图简介 今天是五一,假如我要从家出发去公园玩,现在可去公园的公交车路线如下: 现在,我想找一条换乘最少的线路,该使用什么样的算法呢? 我们先找出一步就能到达的地方,显而易见,一步能到达A、B;再找出两步能到达的地方,经过简单寻找,我们发现两步能到达...原创 2020-05-01 09:56:54 · 351 阅读 · 0 评论 -
小白的算法初识课堂(part5)--散列表
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录散列函数防止重复冲突性能填装因子 散列函数 散列函数是这样的一个函数,即无论你给它什么样的数据,它都还你一个数字。如果用专业术语来表达的话,我们可以说,散列函数“将输入映射到数字”。 我们可以认为散列函数输出的数字没啥规律,但是散列函数还是有一些必须要满足的要求的: 它必须是一致的。例如,假设你输入apple时...原创 2020-04-30 23:11:10 · 262 阅读 · 0 评论 -
小白的算法初识课堂(part4)--快速排序
学习笔记 学习书目:《算法图解》- Aditya Bhargava 分而治之 在这里,我想通过2个例子介绍一种著名的递归式问题解决方法–分而治之(D&C) 分蛋糕 假如,我要分一块1680mm*640mm的长方形巨形蛋糕,我要将这块蛋糕均匀的分成同等大小的正方形,且分出的正方形要尽量大。 现在,我们将使用D&C的思路解决问题,D&C过程包括两个步骤。 (1)...原创 2020-04-30 21:23:19 · 354 阅读 · 0 评论 -
小白的算法初识课堂(part3)--递归
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录递归基线条件和递归条件栈调用栈递归调用栈 递归 首先,我们看一段代码: def print_num(my_list): for i in my_list: print(i) print_num([1, 3, 5, 7, 9]) 输出: 1 3 5 7 9 再看一段代码: def pr...原创 2020-04-30 17:03:04 · 310 阅读 · 1 评论 -
小白的算法初识课堂(part2)--选择排序
学习笔记 学习书目:《算法图解》- Aditya Bhargava 文章目录选择排序内存工作原理数组链表读取索引插入删除是常见的数组和链表操作的运行时间选择排序python实现 选择排序 内存工作原理 假如我去博物馆参观,带了玩具熊和花盆,我想把这两样东西寄存一下,那么我就在服务台要了两个柜子寄存它们,寄存过我就可以去参观博物馆啦!(先别管我为啥不把两样东西寄存在一个柜子) 这大致就是...原创 2020-04-30 14:06:57 · 273 阅读 · 0 评论 -
小白的算法初识课堂(part1)--二分查找法
学习笔记 学些书目:《算法图解》- Aditya Bhargava 二分查找法 算法是一组完成任务的指令,任何代码片段都可视为算法。二分查找是一种算法,其输入是一个有序的元素列表(必须有序的原因稍后解释)。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。 下面,我们玩一个猜数字游戏。我随便想一个1~100的数字,而你的目标是以最少的次数猜到这个数字。 简单查找 假设...原创 2020-04-30 11:49:18 · 425 阅读 · 2 评论