摘要:
一、爬虫是什么? #1、什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。 #2、互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则 阅读全文
摘要:
一、什么是设计模式? 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样你就能一次又一次地使用该方案而不必做重复劳动。” 每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。 GoF(Gang of Four) 设计模式四个基本要素:模式名 阅读全文
摘要:
动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推的方式去解决。 动态规划的核心点:定义状态与转移方程(最优子结构)重新定义问题: 一、最长上升子序列(LIS):给定一个序列X,求X长度最大的连续递增的子序列。例:X=[1,7,2,8,3,5,2],LIS(X)=[1,2, 阅读全文
摘要:
斐波那契数列 def fib(n): '''裴波那契''' f = [1,1] for i in range(2, n+1): f.append(f[-1]+f[-2]) print(f) return f[n] fib(5) 阅读全文
摘要:
找零问题:假设商店老板需要找零n元钱,钱币的面额有:100元、50元、20元、5元、1元,如何找零使得所需钱币的数量最少? # greedy algorithm money = [100,50,20,5,1] def change_money(x): change = [0,0,0,0,0] for 阅读全文
摘要:
一、什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。 比如:列表、集合与字典等都是一种数据结构。 “程序=数据结构+算法” 二、数据结构的分类 数据结构按照其逻辑结构可分为线性 阅读全文
摘要:
一、冒泡排序 1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样 2、代码关键点: 趟数:n-1趟 无序区 3、图示说明:依次类推就会得到排序结果。冒泡排序的效率还是很低的 4、代码示例 import random def bubble_sort 阅读全文
摘要:
一、堆的分类 大根堆:一棵完全二叉树,满足任一节点都比其孩子节点大小根堆:一棵完全二叉树,满足任一节点都比其孩子节点小 二、堆的向下调整性质 前提:节点的左右子树都是堆,但是自身不是堆 三、堆排序 内置模块 优先队列:一些元素的集合,POP操作每次执行都会从优先队列中弹出最大(或最小)的元素。堆—— 阅读全文
摘要:
一、树 1、什么是树? 树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点 阅读全文
摘要:
一、列表查找 1、列表查找:从列表中查找指定元素 输入:列表、待查找元素 输出:元素下标或未查找到元素 2、顺序查找:从列表第一个元素开始,顺序进行搜索,直到找到为止。返回找到的那个索引3、二分查找:从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半 阅读全文
摘要:
一、什么是算法? 算法(Algorithm):一个计算过程,解决问题的方法 一个算法应该具有以下七个重要的特征: ①有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止; ②确切性(Definiteness):算法的每一步骤必须有确切的定义; ③输入项(Input):一 阅读全文