
数据结构和算法
zero _s
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KMP字符串匹配算法
T=abaacababcac;P =ababc在T中寻找P,并返回第一个位置java中有一个函数可以实现这个T.indexOf(P);KMP算法首先要计算一个前缀表 prefix table;P的前缀表是:a 0a b 0a b a 1a b a b 2a b a b c 0最长公共前后缀的长度,指的是除字符串本身外的最长连续子串;比如abab的最长前缀是aba 最长后缀是b...原创 2021-08-01 15:23:39 · 198 阅读 · 0 评论 -
算法---力扣刷题
11、最大容量问题暴力解法是双层循环,但是时间复杂度过高 n^2利用双指针,可以将之间复杂度降为n即: 头部一个指针,尾部一个指针,比较两个指针处对应值的大小,值更小的一个向中间移动一步class Solution { public int maxArea(int[] height) { int area = 0; // 定义初始面积 int left = 0; //左指针 int right = height.le...原创 2021-05-28 19:24:26 · 177 阅读 · 0 评论 -
栈、队列
栈是只能在尾部添加和删除,相当于一个杯子容器,只能在一头进行取舍;后进先出;队列是只能在头部删除,尾部添加的一种结构;先进先出;顺序表也就是list,即序列;顺序表(列表)在尾部取舍的时间复杂度是O(1),头部的时间复杂度是O(n)链表在头部取舍的时间复杂度是O(1),尾部是O(n);#队列,基于列表的实现class Queue: def __init__(self...原创 2019-08-07 21:13:52 · 168 阅读 · 0 评论 -
二分查找
#二分查找,二分查找只能作用于顺序表中,即先必须是一个有序序列def binary_search(alist,item):#递归的版本 n=len(alist) mid=n//2 if n>0: if alist[mid]==item: return True elif item<alist[mid]:...原创 2019-08-12 14:38:18 · 101 阅读 · 0 评论 -
树结构基于python实现
#视频内容二叉排序树的概念是某个父节点,其左边的所有子节点一定比父节点元素小,右边的所有子节点一定更大#视频课,树的语法class Node(object):#二叉树的节点 def __init__(self,item): self.ele=item self.lchild=None self.rchild=Noneclass...原创 2019-08-14 13:43:54 · 220 阅读 · 0 评论 -
数据结构-链表
基本数据类型就是:整型、浮点型、字符串型列表元组等是高级的数据类型;内存是用来 存储数据,并直接跟CPU连接,即CPU读取内存里面的内容;内存的基本单位是以字节来存储单元的,一共字节是八位;计算机的存储空间是作为一个整体的空间,这个空间以字节来作为最小的存储单元,每个字节是由八位构成,当计算机需要寻找存储空间的某元素的时候,会根据字节的编号寻 找,即每次 能读取八个位也就是一共字节,对于三...原创 2019-08-07 17:03:29 · 287 阅读 · 0 评论 -
基于数组的数据结构
序列类型:列表类list、元组类tuple、字符串类str;都支持下标索引计算机主存称为随机存储存储器,RAM;sys.getsizeof(data)可以得到data所占的字节数;#动态数组的实现import ctypes #这以模块能创建底层数组class Danamicarray: def __init__(self): self._n=0#...原创 2019-08-01 16:44:02 · 264 阅读 · 0 评论 -
数据结构与算法 习题-第一章
def is_multiple(n,m): k=n%m return (k==0)n=int(input('请输入一个整数:'))m=int(input('请输入一个整数:'))is_multiple(n,m) def is_even(k): while k > 1: k = k - 2 return (k == 0)is...原创 2019-07-25 13:18:02 · 547 阅读 · 0 评论 -
数据结构-第三章习题
import numpy as npimport matplotlib.pyplot as pltx=list(range(1,100))x=[np.log(i) for i in x]y1=[np.log(8*i) for i in x]y2=[np.log(4*i*np.log(i)) for i in x]y3=[np.log(2*i**2) for i in x]y4=...原创 2019-07-30 10:18:32 · 290 阅读 · 0 评论 -
排序算法
由小到大的排序;即将无序的序列排列成有序的序列:冒泡排序:从头往后,只比较其相邻的两个,这样一轮之后最大的元素在最后面;#冒泡排序的算法def sort_list(alist): for j in range(len(alist)-1): for i in range(len(alist)-1-j): if alist[i]>ali...原创 2019-08-14 13:44:13 · 136 阅读 · 0 评论 -
数据结构与算法第五章答案python-
import sysdata=[]for k in range(26): a=len(data) b=sys.getsizeof(data) print('length:{:3d};size in dytes:{:4d}'.format(a,b)) data.append(None)m=len(data)n=sys.getsizeof(data)fo...原创 2019-08-02 09:49:09 · 961 阅读 · 0 评论 -
数据结构和算法 时间复杂度
O 定义对函数f(n) 和g(n) 如果存在c>0 和 n0 >1,使得 f(n)<=c*g(n);就说 f(n) 是g(n)的 O或者说f(n) 是O(g(n))使用O来描述程序运行时间:算法的执行时间是执行次数的函数 用来做算法分析的七个函数;其增长率如图所示;计算效率除了与算法本身有关,还与计算机...原创 2019-07-26 15:38:55 · 351 阅读 · 0 评论