![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python 算法结构
weixin_44719529
这个作者很懒,什么都没留下…
展开
-
20220530-动态规划算法及Needleman-Wunsch算法
文章目录前言一、动态规划原理1、定义2、特点1)针对机器学习算法而言:不需要大量数据和足够的特征值2)相对于BFS和DFS、贪心算法而言:3)3、切钢材3、代码实现增加装饰器----加快递归速度:二、编辑距离1、定义及原理2、代码实现三、Needleman-Wunsch 算法1、定义2、原理1)得分矩阵--score_matrix2)回溯矩阵3、完整代码实现四、 喝水不忘挖井人(感谢各位大佬给予学习思路) 前言 本文主要是通过讲动态规划的原理,(最简单的是切钢材),应用于NLP中,常见的是编辑距离,在生物原创 2022-06-03 15:07:53 · 1353 阅读 · 0 评论 -
二叉树的创建,添加元素,广度遍历,深度遍历
1.创建树,添加元素的时候,利用add(),利用队列的思想存储数据和添加数据(队列并不是二叉树,只是一种对二叉树数据访问的一种方式) 2.遍历二叉树,利用递归思想 """ @desc: 二叉树的实现,类似于队列取值和增加值: 从二叉树中取值,观察是否存在左子树,如果存在,尾部添加左子树,进行后续分析;不存在将左子树指向新节点; 观察是否存在右子树,如果存在,尾部添加右子树,进行后续分析,不存在将右子树指向新节点 """ """定义新节点:存在元素存储区,左子后继节点,右子后继节点""" class Node原创 2021-07-27 18:03:23 · 228 阅读 · 0 评论 -
快速排序算法_疑点和思路
目录前言一、快速排序的思路二、快速排序的难点1. low游标和high 游标位置重合时候,停止循环,找打了mid_value的位置2.遍历对象还是原来的alist,不能是新的对象三、快速排序的代码展示 前言 主要三部分: 思路 难点 具体代码(含有关键部分的注释) 一、快速排序的思路 将传入的alist 中的第一个数据作为首先排序的数据(mid_value) 建立两个游标(low and high),右游标左移开始,之后交换数据,左游标右移,直到两个游标相遇,结束循环,找到 mid_value的位置,此时原创 2021-07-25 23:08:37 · 74 阅读 · 1 评论 -
双向队列的创建和操作
class Deque(): """创建一个空的双端队列""" def __init__(self): self.__list=[] def add_front(self,item): """从队头加入一个item元素""" self.__list.insert(0,item) def add_rear(self,item): """从队尾加入一个item元素""" self.__list.app原创 2021-07-24 17:23:19 · 128 阅读 · 0 评论 -
队列的创建和操作
class Queue(): """创建一个空的队列""" def __init__(self): self.__list=[] def enqueue(self,item): """往队列中添加一个item元素""" self.__list.append(item) def dequeue(self): """从队列头部删除一个元素""" return self.__list.pop(0)原创 2021-07-24 17:19:17 · 155 阅读 · 0 评论 -
栈的创建和操作
class Stack():#创建一个空栈 def __init__(self): self.__list=[]#利用顺序表中的List进行实际的存储数据和操作数据,并且进行私有化 def push(self,item): """"添加一个新的元素item到栈顶""" self.__list.append(item)#由于栈的操作特点是先进后出,即添加是在末尾添加 def pop(self): """弹出栈顶元素"""原创 2021-07-24 17:18:08 · 315 阅读 · 0 评论 -
单向循环链表的学习
class Node: def __init__(self, elem): self.elem = elem self.next = None class Single_cycle_link_list: def __init__(self, node=None): """需要记录首节点的地址信息,所以需要创建一个私有类属性-头节点, 将节点和链表(Sing_link_list)进行连接 """原创 2021-07-24 15:04:52 · 34 阅读 · 0 评论 -
双向链表的学习
class Node: def __init__(self, elem): self.elem = elem self.next = None self.prev=None#相对于单向链表,多了一个前驱 class Double_link_list: def __init__(self, node=None): """需要记录首节点的地址信息,所以需要创建一个私有类属性-头节点, 将节点和链表(Sing_lin原创 2021-07-24 15:03:23 · 40 阅读 · 0 评论 -
单项链表的操作和学习
class Node: def __init__(self, elem): self.elem = elem self.next = None class Single_link_list: def __init__(self, node=None): """需要记录首节点的地址信息,所以需要创建一个私有类属性-头节点, 将节点和链表(Sing_link_list)进行连接 """ self原创 2021-07-24 15:01:53 · 40 阅读 · 0 评论 -
栈,堆,字节,字符串知识小结
目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 主要介绍 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarning原创 2021-07-22 20:02:40 · 294 阅读 · 0 评论