随笔分类 - python
摘要:1. 概述 动态规划算法应用非常之广泛。 对于算法学习者而言,不跨过动态规划这道门,不算真正了解算法。 初接触动态规划者,理解其思想精髓会存在一定的难度,本文将通过一个案例,抽丝剥茧般和大家聊聊动态规划。 动态规划算法有 3 个重要的概念: 重叠子问题。 最优子结构。 状态转移。 只有吃透这 3 个
阅读全文
摘要:1. 前言 数据结构和算法是程序的 2 大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机。 什么是数据结构? 指数据在计算机中的存储方式,数据的存储方式会影响到获取数据的便利性。 现实生活中,如果把春夏秋冬的衣物全部堆放在一起,当需要某一季节的衣服时,寻找起来是困难的。 如果分门别类、有条
阅读全文
摘要:1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据。这类 API 统称为开放接口。 Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数据。 明文数据也称为公开数据,开发者可以直接获取到,如登录者的昵称、头像…… 敏感数据如电话号码、唯
阅读全文
摘要:1. 前言 哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API,如 JAVA 中有 MAP 集合、C++ 中的 MAP 容器,Python
阅读全文
摘要:什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找。 本文所涉及到的特殊结构性质的树包括: 二叉排序树。 平衡二叉树。 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求,也得益于这种限制,在查询某一个结点时会带来性能上的优势和操作上的方便。 树表查询属于动态查找算法。
阅读全文
摘要:查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找。 二分查找: 二分查找也称为折半查找,其算法用于有序数列。 插值查找: 插值查找是对二分查找算法的改进。 分块查找: 又称为索引顺序查找,它是线性查找的改进版
阅读全文
摘要:1. 前言 本文将介绍希尔排序、归并排序、基数排序(桶排序)。 在所有的排序算法中,冒泡、插入、选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置。 希尔、归并、快速排序算法也可归为同一类,它们的共同点都是建立在分治思想之上。把大问题分拆成小问题,解决所有小
阅读全文
摘要:1. 前言 所谓排序,就是把一个数据群体按个体数据的特征按从大到小或从小到大的顺序存放。 排序在应用开发中很常见,如对商品按价格、人气、购买数量……显示。 初学编程者,刚开始接触的第一个稍微有点难理解的算法应该是排序算法中的冒泡算法。 我初学时,“脑思维”差点绕在 2 个循环结构的世界里出不来了。当
阅读全文
摘要:1. 前言 因无向、无加权图的任意顶点之间的最短路径由顶点之间的边数决定,可以直接使用原始定义的广度优先搜索算法查找。 但是,无论是有向、还是无向,只要是加权图,最短路径长度的定义是:起点到终点之间所有路径中权重总和最小的那条路径。 如下图所示,A 到 C 的最短路径并不是 A 直接到 C(权重是
阅读全文
摘要:图的常用存储方式有 2 种: 邻接炬阵 链接表 邻接炬阵的优点和缺点都很明显。优点是简单、易理解,对于大部分图结构而言,都是稀疏的,使用炬阵存储空间浪费就较大。 链接表的存储相比较邻接炬阵,使用起来更方便,对于空间的使用是刚好够用原则,不会产生太多空间浪费。操作起来,也是简单。 本文将以链接表方式存
阅读全文
摘要:图是一种抽象数据结构,本质和树结构是一样的。 图与树相比较,图具有封闭性,可以把树结构看成是图结构的前生。在树结构中,如果把兄弟节点之间或子节点之间横向连接,便构建成一个图。 树适合描述从上向下的一对多的数据结构,如公司的组织结构。 图适合描述更复杂的多对多数据结构,如复杂的群体社交关系。 1. 图
阅读全文
摘要:1. 前言 turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI 程序。 本文使用 turtle 模块编写一个简单的小游戏,通过此程序的编写过程聊一聊对 turtle 模块的感悟。 编写游
阅读全文
摘要:1. 前言 分形几何是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学。 分形几何是对大自然中微观与宏观和谐统一之美的发现,分形几何最大的特点: 整体与局部的相似性: 一个完整的图形是由诸多
阅读全文
摘要:1. 字符串匹配算法 所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个子字符串。如在字符串 "ABCDEFG" 中查找是否存在 “EF” 字符串。 可以把字符串 "ABCDEFG" 称为原始(目标)字符串,“EF” 称为子字符串或模式字符串。 本文试图通过几种字符串匹配算法的算法
阅读全文
摘要:1. 模块化编程思想 模块化编程是 Python 的基本思想。初学 Python,都应该使用过小海龟、随机、数学模块。使用模块之前,需要导入模块,然后根据自己的问题需要使用这些模块。 Python 提供了大量的模块库,这些模块中有 Python 语言系统自带的、也有第三方提供的、也可以由开发者根据需
阅读全文
摘要:1. 前言 selenium 原本是一款自动化测试工具,因其出色的页面数据解析和用户行为模拟能力而常用于爬虫程序中,致使爬虫程序的爬取过程更简单、快捷。 爬虫程序与其它类型程序相比较,本质一样,为数据提供处理逻辑,只是爬虫程序的数据来源于 HTML 代码片段中。 怎样准确查找到页面中数据所在的标签(
阅读全文
摘要:
1. 前言 不久之前写过一篇文章,详细介绍了 PIL 库中的 Image 模块的使用。曾经学习过、使用过一段时间的 PS,认识 PIL 后,觉得这这玩意太好玩了,有了想使用 PIL 库实现 PS 中的图片特效的想法。 好,现在直接上案例,不另废其它话。 2. 遮罩图片 本文案例中所用的图片素材,取自
阅读全文
1. 前言 不久之前写过一篇文章,详细介绍了 PIL 库中的 Image 模块的使用。曾经学习过、使用过一段时间的 PS,认识 PIL 后,觉得这这玩意太好玩了,有了想使用 PIL 库实现 PS 中的图片特效的想法。 好,现在直接上案例,不另废其它话。 2. 遮罩图片 本文案例中所用的图片素材,取自
阅读全文
摘要:1. 前言 什么是 Beautiful Soup 4 ? Beautiful Soup 4(简称 BS4,后面的 4 表示最新版本)是一个 Python 第三方库,具有解析 HTML 页面的功能,爬虫程序可以使用 BS4 分析页面无素、精准查找出所需要的页面数据。有 BS4 的爬虫程序爬行过程惬意且
阅读全文
摘要:1 . 前言 PIL 是 Python Image Library 的简称。 PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑。比如:改变图像大小、旋转图像、图像格式转换,转换颜色通道,图像增强,直方图处理,插值和滤波等等。 PIL 是第三方库,使用之
阅读全文
摘要:1. 前言 第一次接触 Python 语言的 IO API 时,是惊艳的。相比较其它语言所提供的 IO 流 API 。 无论是站在使用者的角度还是站在底层设计者的角度,都可以称得上无与伦比。 很多人在学习 JAVA 语言中的 IO 流 API 时,几乎是崩溃的。其 API 太多、API 之间的关系过
阅读全文
浙公网安备 33010602011771号