![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
十三先生po
哈哈哈哈哈哈哈哈哈哈嗝儿
展开
-
逻辑回归和线性回归的区别
参考文献先看这个,直接了当线性回归于逻辑回归的区别逻辑回归和线性回归的区别【ML】线性回归和逻辑回归的联系和区别总结逻辑回归,都是以线性回归为理论支持的逻辑回归多了一个Sigmoid函数(激活),使样本能映射到[0,1]之间的数值,用来做分类问题logistic回归则通过函数L将w‘x+b对应一个隐状态p,p=L(w‘x+b),然后根据p与1-p的大小决定因变量的值逻辑回归(预测函数,用于分类,是离散值,如预测大雨小雨中雨,癌症),多了一层激活函数线性回归(拟合函数,连续值,如下雨量:转载 2021-11-29 10:32:14 · 1116 阅读 · 0 评论 -
python内建数据类型之字典
Python 字典 items() 方法items() 返回字典的键值对:car = { "brand": "Porsche", "model": "911", "year": 1963}x = car.items()print(x)同时遍历键和键值def f(**args): for i,j in args.items(): print(i,j)f(a = 'bab')...原创 2021-11-16 15:11:00 · 60 阅读 · 0 评论 -
用python实现简单的二分查找
# 二分递归查找# 针对有序序列def binary_search(alist,item): # 先判断是否为空,如果为空,则返回none n = len(alist) if n == 0: return False # 拆分 mid = n//2 # 查找匹配 # 如果中间值就是要找的值,直接返回 if alist[mid] == item: return True # 如果要找的值比原创 2021-09-03 14:25:55 · 72 阅读 · 0 评论 -
用python实现简单的归并排序
思想:先递归分散解组,再合成一个新的序列# 归并排序# 先递归分解,当长度<=1时不分解,# 再两两一组合并,# 当前两组内处于相同位置的值(如第一组的位置0和第二组的位置0进行比较),# 需要另外一个空列表进行合并,# 小的值优先放在空列表的头位def merge_sort(alist): # 判断不可再分的条件 # 当分解成1个的时候,不能再分 # print(len(alist)) if len(alist) == 1: # pr原创 2021-09-03 14:24:34 · 537 阅读 · 0 评论 -
用python实现简单的快速排序
从序列中取出第一个数,作为边界条件,判断此数应该在哪个位置。用一个mid接收这个数,然后用两个游标low和high进行左右夹击,找到第一个数的具体位置,此时low=high,把mid放到这个位置它以mid为基准,把大的换到一边,小的换到一边# 快速排序# 右标签找比mid值小的数,如果找不到,右标签向左移动,找到后该位置值和mid值位置交换(第一次时,mid值在第一位)# 左标签找比mid值大的数,如果找不到,左标签向右移动,找到后该位置值和mid值位置交换# 它以mid为基准,把..原创 2021-09-03 14:23:36 · 136 阅读 · 0 评论 -
用python实现简单的选择排序
假定整个序列由2部分组成,一部分有序,一部分无序;我们从无序的序列中找到其中的最小值,放到有序的末端。初始时,默认有序的序列为[],整个序列都是无序的,找到其中的最小值,用 min 记录,最后用min对应的值和l[i=0]互换。以此类推,同时默认每次的min的初始值都为无序的首个元素的下标# 选择排序# 默认把第一个值看成是最小的值,# 跟他在后面的值相比较,判断这第一个值是否最小,# 如果是最小,则放入有序的队列中,如果不是,# 找到有序列表中的最小值# 重点掌握:最小值指向的改变def原创 2021-08-29 21:14:26 · 954 阅读 · 0 评论 -
用python实现简单的插入排序
认为列表有两部分,一部分有序,一部分无序;有序此时默认的是第一个元素。然后用后面的无序序列中的第一个和有序序列比较,从后往前比较,看看是不是比前面的元素小,小就互换。# 插入函数# 插入排序可以看成选择排序和冒泡排序的组合,# 放入有序队列中进行两两比较,# (先与然第一个值比较,后往后(+1)比较)互换位置,# 用后面无序列表中的第一个值和有序列表比较,# 在有序列表中进行冒泡排序# 排序排n-1次,比较n-1次(第一次就一个值,必定有序)def insert_sort(alist):原创 2021-08-29 21:13:29 · 455 阅读 · 0 评论 -
用python实现简单的冒泡排序
冒泡排序 Bubble_sort()重复的遍历整个序列,每次比较2个元素,如果前一个大于后一个,对这两个元素进行交互位置,直到没有在需要交换的元素;从头到尾的每次交换,能找到一个最大值。import randomdef maopao(alist): # 两两比较,第一个数值是i,则旁边的数值是i+1 # 如果列表的长度为n,则一共要比较n-1次 n = len(alist) # 每次比较的数值与上一个相比少一个, # 需要做外部循环 # 需要比较n-原创 2021-08-29 21:12:10 · 143 阅读 · 0 评论 -
用python实现简单的双端队列
双端队列是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队# 双端队列class Queue(object): def __init__(self): self.__list = [] # 判断空值 def is_empty(self): return self.__list == [] # 输出队列长度 def size(self原创 2021-08-25 22:00:24 · 543 阅读 · 0 评论 -
用python实现简单的队列
队列:它只允许在一端插入(入队),一端删除(出队)。先进先出的线性表(FIFO)允许插入的一端为队尾,允许删除的一端是队头。先排队的人先进,后排队的人后进class Queue(object): # 创建空列表 def __init__(self): self.__list = [] # 判断是否为空 def is_empty(self): return self.__list == [] # 队列长度 def s原创 2021-08-25 21:58:33 · 794 阅读 · 0 评论 -
用python实现简单的栈
栈是线性表中的一种,它只允许在容器的一端加入数据好像米缸一样,先倒进去的米最后才倒出来栈的特点:先进后出# 创建一个栈class Stack(object): # 初始化 def __init__(self): # 使用列表来实现栈 self.__list = [] # 判断空值 def is_empty(self): return self.__list == [] # 判断栈的大小 def s原创 2021-08-25 21:57:22 · 316 阅读 · 0 评论 -
用python实现简单的单向循环链表
单项循环链表 : 单链表的一个特殊形式就是单向循环链表,链表中最后一个节点的next不再为None,而是指向当前链表的头节点 单向循环链表的结构# 单向循环链表# 链表中最后一个节点的next不再为None,# 而是指向当前链表的头节点# 实例化结点class Node(object): def __init__(self,data): self.data = data self.next = None # 指针域next先默认等于none# 单向原创 2021-08-25 20:04:38 · 174 阅读 · 0 评论 -
顺序表扩容
顺序表扩容有一种方法,申请新地址和更大的容量,把东西整体搬过去,不太现实,浪费资源。目前动态顺序表的扩容策略分为两大类:线性增长、倍数增长线性增长: 数据存储区容量一旦发现不足,每次扩充增加固定数目的存储区容量,如每次扩充增加4个元素位置。特点:扩充频率高,空间利用率高,倍数增长: 数据存储区容量一旦发现不足,每次扩充容量加倍 特点:扩充频率低,空间利用率低。(例如U盘,市场上常见的容量都是8的倍数关系,很少见其他容量数值的)...原创 2021-08-21 20:05:10 · 818 阅读 · 0 评论 -
用python实现简单的双链表
# 实例化双向链表class Node(object): # 初始化 def __init__(self,data): self.data = data self.pre = None # 头部一开始也没有地址 self.next = None # 尾部指向的下一地址初始化(一开始)也是noneclass DoubleLink(object): # 初始化 def __init__(self,node = None):原创 2021-08-21 16:29:20 · 86 阅读 · 0 评论 -
用python实现简单的单向链表
# 创建节点class Node(object): def __init__(self,data): self.data = data self.next = None# 创建单向链表class singleLink(object): # 单向链表初始化 def __init__(self,node = None): self.__head = node # head私有化 # 单向链表判空 def原创 2021-08-19 22:12:12 · 154 阅读 · 0 评论