- 博客(16)
- 收藏
- 关注
原创 数据结构与算法笔记(6)递归与分治
Recursion递归-循环通过函数体来进行的循环(函数自己调用自己来形成循环)代码要避免死循环(死递归即递归不停止)其中if n<=1: return 1为递归的终止条件递归执行过程如下,以N=6为例递归的模板斐波那契数的递归算法运行路径如下会产生许多重复的子问题运算,因此在本问题中效率并不是最好的Divide&Conquer(分治...
2019-03-07 11:05:32
272
原创 数据结构与算法学习笔记(6)二叉树遍历
Pre-order ,In-order,Post-order在实际使用中,一般会使用深度优先或广度优先或搜索而不常用前序(Pre-order)中序(In-order)后序(Post-order)前中后主要指根的位置前序遍历的顺序是ABDECFG中序遍历顺序为DBEAFCG后序遍历的顺序为DEBFGCA...
2019-03-07 10:45:35
201
原创 数据结构与算法学习笔记(5)树&二叉树&二叉搜索书
树,二叉树,二叉搜索树(Tree, Binary Tree, Binary Search Tree)根节点,左子树,右子树父亲节点,儿子节点,兄弟节点每个节点都有一个左孩子和一个右孩子————完全二叉树图Linked List就是特殊化的TreeTree就是特殊化的Graph树的python实现二叉搜索树(Binary Search Tree)也称有序二叉树(ordere...
2019-03-06 10:39:46
306
原创 数据结构与算法笔记(4)映射和集合
映射,集合(Map,Set)哈希表&哈希函数(HashTable&Hash Function)哈希函数通过函数将某一元素放在数组的某个位置哈希碰撞(Hash Collisions):数组里某个位置有两个元素解决哈希碰撞的方法,可以用拉链法,即将该位置用链表放置。List vs Map vs SetHashMap vs TreeMapHashSet vs Tre...
2019-03-05 18:27:49
284
原创 数据结构与算法学习笔记(3)堆栈,队列
堆栈,队列,优先队列(Stack,Queue,PriorityQueue)堆栈——先入后出队列——先入先出常用数据结构的时间复杂度堆栈的查询时间复杂度为O(N)插入\删除时间复杂度O(1)队列的查询时间复杂度为O(N)插入\删除时间复杂度O(1)优先队列优先队列——正常入,按照优先级出(可设置属性)优先队列的实现机制1.heap堆(Binary二叉堆,Binomi...
2019-03-05 17:47:26
218
原创 数据结构与算法学习笔记(2)数组与链表
数组,链表(Array,Linked List)数组查找或者改变数组里的元素,可以进行插入操作(O(N)的时间复杂度),或者删除操作(O(N)的时间复杂度)想要改善数组这种数据结构的插入和删除的时间复杂度,因此引入链表形式链表 Linked List链表的插入操作 O(1)的时间复杂度链表的删除操作 O(1)的时间复杂度链表的查找操作需要从头开始找,时间复杂度为O(N)...
2019-03-05 16:26:41
183
原创 数据结构与算法学习笔记(1)学习方法
如何有效学习算法与数据结构chunk it up(切碎知识点)deliberate practicing(刻意练习)feedback(反馈)注意知识点之间脉络联系 数据结构做题的放法时间复杂度、空间复杂度几块代码合在一起时,只看最高复杂度的运算。时间复杂度越低,速度越快。了解Master Theorem常用四种算法的时间复杂度在leetcode练习坚持,刻意练...
2019-03-05 16:10:01
228
原创 红楼梦人物出场次数统计及人物出场词云
《红楼梦》是一篇鸿篇巨制,里面出现了几百个各具特色的人物。每次读这本经典作品都会想一个问题,全书这些人物谁出场最多呢?我们来用Python进行回答。import jiebaf=open("红楼梦.txt","r",encoding="utf-8")txt=f.read()f.close()words=jieba.lcut(txt)counts={}for word in w
2019-03-03 20:30:05
18301
7
原创 可视化词云实现
wordcloud库概述wordcloud库是专门用于根据文本生成的词云的Python第三方库,十分常用且有趣。wordcloud库需要由pip安装。wordcloud库的核心是WordCloud类,所有的功能都封装在WordCloud类中,使用时需要实例化一个WordCloud类对象,并调用其generate(text)方法将text文本转化为词云。WordCloud类在创建时有一系列可选...
2019-03-02 22:07:37
1041
原创 jieba库与中文分词
jieba库概述由于中文文本中的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的“分词”问题。jieba是python中一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列。jieba库需要通过pip指令安装。:\>pip install jiebajieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行对比,通过图结构和动态规划找到最...
2019-03-01 19:27:36
2099
原创 如何将python源文件打包
学习过程中我们可能想要将写好的Python源文件变成可以在windows操作系统下直接运行的可执行文件,下面我来给大家介绍如何将Python源文件打包成可执行文件。通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件方便传递和管理。PyInstaller库PyInstaller是一个十分有用的Python第三方库,它能够在Windows,Linux...
2019-03-01 15:52:39
1527
1
原创 Python第三方库获取和安装方法
Python第三方库依照安装方式灵活性和难易度有3个方法:pip工具安装自定义安装文件安装pip工具安装最常用且最高效的Python第三方库安装方式是采用pip工具安装。pip是Python官方提供并维护的在线第三方库安装工具。对于Python3.x版本环境,可以用pip3命令代替pip命令专为Python3.x版本安装第三方库。使用pip安装第三方库需要联网。安装一个库的命令格式...
2019-03-01 13:51:04
859
原创 turtle库实例——雪景艺术绘图
turtle图形艺术效果中隐含着很多随即元素,如随机颜色,尺寸,位置和数量等。因此在图形艺术绘制中需要引入随机函数库random。常用randint()函数生成指定范围内的随机数。本实例选择“雪景”作为编程目标。“雪景”图形艺术背景为黑色,分为上下两个区域,上方是漫天彩色雪花,下方是由远及近的灰色横线渐变。该图运用了随机元素,如雪花的位置·颜色·大小·花瓣数目·地面灰色线条长度·线条位置等,需...
2019-02-28 21:13:56
7032
原创 time库概述与程序计时
time库概述处理时间是程序最常用的功能之一,time库是Python提供的处理时间标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。time库的功能主要分为3个方面:时间处理,时间格式化和计时。时间处理主要包括4个函数:time.time() time.gmtime() time.localtime() time.ctime()时间格式化主...
2019-02-28 17:22:33
1838
原创 random库概述及随机数运用
random库概述随机数在计算机应用中十分常见,Python语言提供了random库用于产生各种分布的伪随机数序列。random库采用梅森旋转算法(Mersenne twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。random库提供了不同类型的随机数函数,其中最基本的函数是random.random(),它生成一个[0.0,1.0)之间的随机小数,所有其...
2019-02-27 22:07:22
4260
1
原创 关于python idle中使用退格键backspace出现小方格的问题
问题描述在Python idle shell(版本3.5.2)中敲代码时,当代码敲错后想使用退格键backspace删除错误代码字节,就会出现小方格“口” 并且退格键会卡顿删除不掉之后的内容。如图所示解决方法问题出在使用的输入法,当使用一些现在常用的输入法时(例如百度输入法 搜狗输入法等)由于输入法可能对退格键的编码定义不同,导致在idle中出现小方格。因此解决方法选择微软自带输入法...
2019-02-27 10:36:35
2883
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人