![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
开数据挖掘机的小可爱
这个作者很懒,什么都没留下…
展开
-
【数据结构】python——变位词判断
变位词就是两个词中组成字母或汉字相同,但排列不同 判断两个词是否为变位词的方法有四种:一、暴力法 算法思路:将词1中出现的字符进行全排列,再查看全排列结果中是否报刊词2 缺点:全排列结果过多二、逐字检查法 算法思想:将词1中的字符逐个到词2中检查是否存在,存在就“打勾”(将对应字符设置为None),若词1中每个字符都能在词2中找到,则两个词是变位词,只要有一个找不到,则不是def anagramsolution1(s1,s2): alist=list(s2)#复制s2到列表原创 2021-02-10 18:10:41 · 531 阅读 · 0 评论 -
【数据结构】——树:二叉树的遍历
1.度: 节点的度:某个节点的子节点个数 树的度:节点最大的度数2.二叉树:最多有两颗子树:左子树、右子树 满二叉树:除最后一层没有子节点外。其余每一层的所有节点都有两个子节点 完全二叉树:在深度为d的二叉树中,除了第d层,其他各层节点数均为2 满二叉树和完全二叉树区别:完全二叉树可允许在中间层包含叶子节点,满二叉树只允许最后一层为叶子节点3.二叉树的遍历 主要区别:访问根节点的顺序① 前序遍历:访问根节点-前序遍历左子树-前序遍历右子树:A-B-D-E-Cclass aT原创 2020-12-21 21:29:46 · 92 阅读 · 0 评论 -
【数据结构】——交换排序算法:冒泡排序、快速排序
一、冒泡排序:(稳定)1.基本思想 成对比较:比较相邻元素,若第一个大于第二个,则交换对每一对相邻元素做同样工作,这一步完成后最后的元素将是最大的数针对所有元素重复以上过程(除去排好序的数字)没有任何一对元素发生交换时,停止排序2.代码实现#冒泡排序m=[1,3,4,2]def Bubble_sort(alist): n=len(alist) count=False for i in range(0,n-1):#循环每一对 for j in原创 2020-12-21 10:28:20 · 113 阅读 · 0 评论 -
【数据结构】——查找算法:顺序查找、二分查找
一、in 最简单的查找算法:for i in range(3)二、顺序查找11.无序列表顺序查找的时间复杂度较高为O(n) 若要查找的元素在列表中有多个,则在查找到第一个后即停止时间复杂度: 最好:O(1)最好即第一个元素就是目标元素当不存在要查找的元素时为O(n) 最坏:O(n)最坏是查到最后一个才找到目标元素#无序列表的顺序查找m=[1,5,3,9,7]def seqSearch(alist,item): i=0 found=False whil原创 2020-12-21 18:31:50 · 458 阅读 · 0 评论