自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 python编程篇之数据结构与算法(十五)

二叉树的遍历树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。深度优先遍历对于一颗二叉树,深度优先搜索(Depth First...

2018-10-17 19:49:38 224

原创 python编程篇之数据结构与算法(十四)

二叉树二叉树的概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0)性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0...

2018-10-17 19:41:18 147

原创 python编程篇之数据结构与算法(十三)

树与树算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;...

2018-10-17 11:45:28 149

原创 python编程篇之数据结构与算法(十二)

搜索搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键...

2018-10-15 19:19:18 117

原创 python编程篇之数据结构与算法(十一)

归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。归并排序的分析def merge_sort(alist): if len(alist) &lt...

2018-10-11 15:31:29 102

原创 python编程篇之数据结构与算法(十)

希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想是:将...

2018-10-10 14:07:54 121

转载 python编程篇之数据结构与算法(九)

快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有...

2018-10-09 18:45:37 118

转载 python编程篇之数据结构与算法(八)

插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序分析def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向前插入...

2018-10-08 15:11:45 113

转载 python编程篇之数据结构与算法(七)

选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将...

2018-09-27 15:08:21 124

原创 python编程篇之数据结构与算法(六)

排序与搜索之冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。...

2018-09-26 16:56:16 123

原创 python编程篇之数据结构与算法(五)

队列队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符...

2018-09-25 14:29:36 100

原创 python编程篇之数据结构与算法(四)

栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In...

2018-09-19 18:50:34 115

原创 python编程篇之数据结构与算法(三)

链表为什么需要链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。单向链表...

2018-09-18 19:29:27 120

原创 python编程篇之数据结构与算法(二)

顺序表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。对于这种需求,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。这样的一组序列元素的组织形式,我们可以将其...

2018-09-15 09:49:21 148

原创 python编程篇之数据结构与算法(一)

引入概念引入先来看一道题: 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?第一次尝试import timestart_time = time.time()# 注意是三重循环for a in range(0, 1001): for b in range(0, 1001): fo...

2018-09-15 09:31:27 438

原创 python编程篇之爬虫(六)

Scrapy框架Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。S...

2018-09-11 16:03:22 217

原创 python编程篇之爬虫(五)

爬取糗事百科段子import urllib.requestimport redef getContent(url,page): # 模拟成浏览器 headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/6...

2018-09-10 15:35:29 137

原创 python编程篇之爬虫(四)

python+ajax实现今日头条街拍图片爬取from urllib.parse import urlencode,quoteimport urllib.requestimport requestsimport osfrom hashlib import md5def get_page(num): keyword = '街拍' base_url = 'https:...

2018-09-07 19:01:39 129

原创 python编程篇之MySQL(三)

MySQL数据库之导入测试数据作为初学者,在自己建表之后,填入的数据是否觉得不满意。 在练习SQL语句的同时,是否觉得设计表的结构或是数据不满足要求而遇到烦恼?MySQL测试数据mysql官方提供了一份数据,方便mysql使用者练习。测试数据: 链接:https://pan.baidu.com/s/1ksHTZ9n70NVNSjGgGbmJHw 密码:76q1当然也可以在官...

2018-09-05 19:03:37 131

原创 python编程篇之MySQL(二)

python编程篇之MySQL(二)创建实例学生表create table student(id int primary key auto_increment,sname varchar(20));科目表create table subjects(id int primary key auto_increment,subname varchar(20),teac...

2018-09-04 16:20:58 114

原创 python编程篇之MySQL(一)

python编程篇之MySQL(一)1、非关系型数据库: redis mongodb 2、关系型数据库 oracle 付费,银行,大型项目用到 mysql web项目,开源免费 ms sql server 微软项目 sqlite 轻量级数据库,移动平台 3、实时数据库 firebase 4、数据库组成客户端-...

2018-09-03 16:40:41 343

原创 python编程篇之爬虫(三)

python编程篇之爬虫(三)"""爬取淘宝相应对的关键字的网页的图片"""import reimport urllib.requestkeywd = "手机"# 对关键字进行编码key = urllib.request.quote(keywd)# 构建urlsimple_url = "https://s.taobao.com/search?q="+key+"&a

2018-08-28 15:16:32 138

原创 python编程篇之爬虫(二)

python编程篇之爬虫(二)今天来介绍使用urllib库爬取整本小说的程序import urllib.requestimport re# 伪装成浏览器header = ( "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ...

2018-08-27 17:13:34 124

原创 python编程篇之爬虫(一)

python编程篇之爬虫(一)最简单的一个爬虫,爬取百度首页import urlliburl = "http://www.baidu.com"data = urllib.request.urlopen(url).read().decode('utf-8','ignore')# print(data)with open('E:/testFile/baidu.html', 'w', ...

2018-08-24 13:55:57 191

原创 python编程篇之垃圾回收(二)

python编程篇之垃圾回收(二)一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。1、导致引用计数+1的情况对象被创建,例如a=23对象被引用,例如b=a对象被作为参数,传入到一个函数中,例如func(a)对象作为一个元素,存储在容器中,例如list1=[a,a]2、导致引用计数-1的情况对象的别名被显式销毁,例如del a对象的别名被...

2018-08-23 17:03:49 121

原创 python编程篇之垃圾回收(一)

python编程篇之垃圾回收(一)1.小整数对象池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的都是同一个对象.同理,单个字母也是这样的。但是当定义2个相同的...

2018-08-22 16:10:00 178

原创 python编程之正则表达式

正则表达式正则介绍正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。re模块在Python中需要通...

2018-08-21 16:56:22 125

原创 python系统编程篇之线程

python系统编程篇之线程python多线程多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度程序的运行速度可能加快在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可...

2018-08-20 14:40:40 124

原创 python系统编程篇之进程

python系统编程篇之进程进程与程序的概念问题编写完毕的代码,在没有运行的时候,称为程序 正在运行的代码,是进程 进程,不只是正在运行的代码,还有需要的运行环境 区分程序与进程,这两个概念是很重要的fork运用fork(),可以创建子进程。但是需要注意的是,fork()只能在mac,linux,UNIX系统上使用,而在windows中是不能使用的import osr...

2018-08-18 14:44:38 208

原创 python网络编程篇2

python网络编程篇2TCPudp通信模式udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,”写信”tcp通信模式udp通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,”打电话”tcp客户端'''TCP客户端'''import socket# 创建套接字# 在创建tcp套接字的...

2018-08-17 18:59:42 147

原创 python网络编程篇1

Python网络编程篇1python的网络编程主要的知识点在于UDP,TCP。UDP与TCP都会涉及到端口问题。首先就先来介绍一下常用的端口:21/tcp FTP 文件传输协议 22/tcp SSH 安全登录、文件传送(SCP)和端口重定向 23/tcp Telnet 不安全的文本传送 25/tcp SMTP Simple Mail Transfer Protocol (E-ma...

2018-08-16 19:10:04 157

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除