8 走出去拍拍照

尚未进行身份认证

暂无相关描述

等级
博文 127
排名 4w+

归并排序、堆排序、桶排序、基数排序

归并排序归并排序的思想就是分治法,分两步走,第一步,将需要排序的数组分解为子序列,对子序列进行排序;第二步就是对有序子序列进行排序,合并成一个有序的序列。publicstaticvoidsort(int[]arr){ //临时数组 int[]tempArr=newint[arr.length]; sort(arr,tempArr,0,arr.length-...

2019-07-22 12:13:36

约瑟夫环问题

什么是约瑟夫问题?所谓约瑟夫问题就是N个人围成一圈,从第一个人开始报数,报M的那个人出局;接着又是M+1那个人开始报数,从1开始报,后面报M的那个人出局;以此循环,直到最后只剩一个人,求这个人的初始下标或者初始排第几位?下图就是10个人,报3的出局的模型!很多的解答当中都提到了最笨的方式,利用链表来模拟,N个人看作是N个链表节点,节点1指向节点2,节点2指向节点3,……,节点N-1指向...

2019-07-22 11:59:41

大数相关算法

在华为的机试的时候,碰到了大数的问题,所有的大数问题,无非就是相加相减相乘相除这四种,里面的区别就是大数的表示方式,一般我们采用字符数组的方式去保存大数,也有采用链表的。这两种方式中,字符数组的方式比较好理解一些,本文通过代码,来说明大数运算的集中情况,力争将这个问题讲清楚。大数相乘题目描述:输入两个不超过100位的大整数的乘积。输入:1234567123输出:151851741...

2019-07-16 23:56:19

多线程从入门到放弃

在前面《python多线程浅析》一文中,我比较笼统的写了关于多线程的一些东西,本文准备比较详细的介绍一下多线程,从最基础的创建多线程开始,探讨关于锁、通信机制、线程池等内容!单线程、多线程、多进程的对比首先,我们通过以下四个场景,来对比以下单线程、多线程、多进程处理能力的强弱!四个场景分别是CPU计算密集型、磁盘IO密集型、网络IO密集型、还有我们模拟的IO密集型。代码如下:impo...

2019-07-01 22:06:50

协程进化史:从yield到await

在python2.5的时候,yield关键字可以在表达式中使用,而且生成器API中增加了send()方法,也就是从这个时候开始,生成器可以当作协程使用。在python3.3的时候,PEP380引入了yieldfrom语句,使用它可以将复杂的生成器重构称小型嵌套生成器;而且从这个版本开始,生成器可以返回值,在此之前,在生成器中加入return语句会抛出SyntaxError。在python...

2019-06-28 00:15:42

阻塞/非阻塞、同步/异步到底是什么?

阻塞指的是程序在未得到所需资源时被挂起的状态!程序在等待某个操作完成期间,自身无法继续干别的事情,则称程序在该操作上是阻塞的。非阻塞就是程序在等待某个操作过程中,自身没有被阻塞,可以继续做另一件事,则称程序在该操作上是非阻塞的。同步就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者*主动等待这个*调用*的结果。异...

2019-06-26 14:33:50

从生成器到协程

本文希望能够通过生成器到协程的历程,从这个角度说明一下协程!递归我们以斐波拉契数列的运算来说明我们的生成器,对于斐波拉契数列,我们生成其第n个数。首先我们利用递归的方式实现。importtimedefclock(func):defclocked(*args):t0=time.perf_counter()result=fu...

2019-06-25 18:03:05

python从闭包到装饰器

前面写过一篇《原来这就是python装饰器》,主要介绍蛇什么是装饰器,这一篇主要介绍装饰器所运用到的技术原理,最终说明装饰器的工作原理!python如何判断变量是不是局部变量?如下的例子:b=6deff1(a):print(a)print(b)b=9print(b)if__name__=="__main__":...

2019-06-18 17:37:07

python爬取微信制作照片墙

以前看到很多爬取自己微信制作照片墙的,觉得蛮有意思的,今天自己实现了一下。本人主要是用到wxpy以及PIL这两个库,其中wxpy这个库很好玩的样子,参考https://pypi.org/project/wxpy/0.3.9.8/!而PIL可以参考下面这个文章https://www.liaoxuefeng.com/wiki/897692888725344/966759628285152。废话不多...

2019-06-11 21:03:41

python实现爬取猫眼并初步分析数据

本文通过爬取猫眼top100,利用Request请求库和4种内容提取方法:正则表达式、lxml+xpath、Beatutifulsoup+css选择器、Beatutifulsoup+find_all爬取网页内容,熟悉常用的这些提取方法。爬取目标从网页中提取出top100电影的电影名称、封面图片、排名、评分、演员、上映国家/地区、评分等信息,并保存为csv文本文件。 根据爬取结果,进行简单...

2019-06-11 00:36:46

python实现爬取东方财富网

在东方财富网上面有很多关于各个公司报表的信息,通过爬取上面的信息,我们可以分析其中数据,得到一些我们想要的结果!本文通过requests/json/re模块爬取该网站的数据,存储为csv文件。具体代码实现如下!importrequestsimportreimportjsonimportcsvimportosimporttime#设置文件保存本地文件夹下fil...

2019-06-10 13:56:27

pythonchallenge解法源码(6-10)

第六关importzipfilecomments=[]num='90052'suffix='.txt'withzipfile.ZipFile('channel.zip')aszf:whileTrue:try:zi=zf.getinfo(num+suffix)#获取zip文档中指定文件的信息...

2019-06-10 00:51:52

pythonchallenge解法源码(1-5)

今天看到一个好玩的游戏,搜了一下,很早的一个项目了,想着这样去熟悉一下python的一些用法,下面把每一关的源码贴出来!第一关importstringtext='''gfmncwmsbgblrrpylqjyrcgrzwfylb.rfyrqufyramknsrcpqypcdmp.bmglegrglzwfylbgqglcddg...

2019-06-09 00:10:26

线程安全的那些事儿

在网络上看到关于线程安全的问题,在这里,我想结合操作系统中线程的概念,来说说这个问题!进程是资源分配的最小单位,线程是程序执行的最小单位!也就是说对于进程来说,它的内存空间有一块特殊的公共区域,通常称为堆,这个区域是所有进程内的线程共享的区域。这个区域共享,好处是数据的传输非常方便,坏处是会造成数据的不安全,因为所有线程都能用,这就引出了我们说的线程安全的问题。那么什么是线程安全?怎么去保...

2019-06-06 11:26:08

抓取知乎学习Scrapy

每一篇讲解scrapy框架的文章,都会以这张图来说明,对于一个小白,第一次看到这张图的时候,肯定是懵逼的!先不管这张图,下面我以抓取知乎的实例,说明这个框架!通过以下命令,我们会建立一个scrapy框架的抓取知乎网页的工程:scrapystartprojectzhihu这个时候就会生成以下这些文件!这个时候我们需要进入这个工程zhihu,输入以下命令,建立spider...

2019-06-05 23:37:44

python爬虫实现博客数据爬取

本次抓取利用requests库请求网页,返回json数据,所以需要通过json来解析text数据;pyquery解析网页数据;数据最终保存在mongodb中。importrequestsfromurllib.parseimporturlencodefrompyqueryimportPyQueryaspqfrompymongoimportMongoClient...

2019-06-05 17:50:55

MapReduce流程浅析

前言Hadoop是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce、分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper、Pig、Chukwa、Hive、Hbase、Mahout、flume等。这里,我们明确了MapReduce是一个分布式并行编程框架,它将复杂的、运行于大规模集群上的并行计算过程高度...

2019-06-01 17:00:32

python爬虫实现豆瓣数据的爬取

本文利用urllib在python3.7的环境下实现豆瓣页面的爬取!用到的包有urllib与re两个模块,具体实现如下!importurllib.requestimportreimportsslurl="https://read.douban.com/provider/all"defdoubanread(url):ssl._create_default_...

2019-05-26 22:02:09

分布式文件系统HDFS原理篇

所谓分布式文件系统就是通过网络实现文件在多台主机上进行分布式存储的文件系统!它一般采用“客户端/服务器端”的模。分布式文件系统的结构如下图所示,分布式文件系统在物理结构上是由计算机集群的多个节点构成的。这些节点分为主节点(Namenode,也叫做名称节点)和从节点(Datanode,也叫做数据节点)。其中主节点负责文件和目录的创建、删除和重命名等,同时管理着从节点和文件块的映射关系,因此客...

2019-05-26 03:10:01

python网络编程基础

网络架构网络中我们采用客户端/服务器结构的方式,其中服务器就是为一个或多个客户端提供服务,它唯一的目的就是等待客户端的请求,并响应请求,然后等待更多的请求;而客户端因特定的请求而联系服务器,并发送数据,然后等待服务器的回应,最后完成请求或给出故障的原因。套接字网络编程的一个基本组件是套接字(socket)。最初它是为同一个主机上的应用程序所创建,也就是应用在进程间的通信上面。今天我们要...

2019-05-22 19:10:25
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。