随笔分类 - Algorithm
摘要:# 一、数据结构和算法基础 ## 1、尝试 先来看一道题: > 如果 a+b+c = 1000, 且 a^2 + b^2= c^2 (a,b,c为自然数),如何求出 a、b、c可能的合并? 一般采取最原始的方法(枚举法),将 a、b、c分别从0~1000取值,再逐一匹配。 ```python imp
阅读全文
摘要:策略模式 一、客户消息通知 假设某司维护着一些客户资料,需要在该司有新产品上市或者举行新活动时通知客户。现通知客户的方式有两种:短信通知、邮件通知。应如何设计该系统的客户通知部分?为解决该问题,我们先构造客户类,包括客户常用的联系方式和基本信息,同时也包括要发送的内容。 class customer
阅读全文
摘要:代理模式 一、网络服务器配置白名单 代理模式是一种使用频率非常高的模式,在多个著名的开源软件和当前多个著名的互联网产品后台程序中都有所应用。下面我们用一个抽象化的简单例子,来说明代理模式。首先,构造一个网络服务器: #该服务器接受如下格式数据,addr代表地址,content代表接收的信息内容 in
阅读全文
摘要:单例模式 一、总线 总线是计算机各种功能部件或者设备之间传送数据、控制信号等信息的公共通信解决方案之一。现假设有如下场景:某中央处理器(CPU)通过某种协议总线与一个信号灯相连,信号灯有64种颜色可以设置,中央处理器上运行着三个线程,都可以对这个信号灯进行控制,并且可以独立设置该信号灯的颜色。抽象掉
阅读全文
摘要:设计模式 一 什么是设计模式 设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验,考虑了封装性、复用性、效率、可修改、可移植等各种因素的高度总结。它不限于一种特定的语言,它是一种解决问题的思想和方法 二 为什么要有设计模式 公司人事会有变动,程序员也会成长。不管是哪种情
阅读全文
摘要:In [3]: import pandas as pd import numpy as np . . . In [ ]: xxxxxxxxxx a(x1,y1,z1) b(x2,y2,z2) dist(a,b) = ((x1-x2)**2 + (y1-y2)**2 + (z1-z2)**2)**
阅读全文
摘要:二叉树 python实现二叉树的数据结构: . 二叉树的排序方式: - 广度遍历(层次遍历) - 深度遍历: - 前序(根左右):把根放到最前面 - 中序(左根右):把根放到中间 - 后序(左右根):把根放到最后 class Node(): def __init__(self,item): self
阅读全文
摘要:算法之排序 一.冒泡排序 代码示例: #将乱序列表中最大元素排列到列表末尾位置 def m_sort(alist): for j in range(0,len(alist)-1): if alist[j] > alist[j+1]: temp = alist[j] alist[j] = alist[
阅读全文
摘要:算法之查找 查找/搜索 - 我们现在把注意力转向计算中经常出现的一些问题,即搜索或查找的问题。搜索是在元素集合中查找特定元素的算法过程。搜索通常对于元素是否存在返回 True 或 False。有时它可能返回元素被找到的地方。我们在这里将仅关注成员是否存在这个问题。 - 在 Python 中,有一个非
阅读全文
摘要:1.数据结构&算法的引言+时间复杂度 一.什么是计算机科学? 首先明确的一点就是计算机科学不仅仅是对计算机的研究,虽然计算机在科学发展的过程中发挥了重大的作用,但是它只是一个工具,一个没有灵魂的工具而已。所谓的计算机科学实际上是对问题、解决问题以及解决问题的过程中产生产生的解决方案的研究。例如给定一
阅读全文
摘要:一、基本概念 1. mro序列 MRO是一个有序列表L,在类被创建时就计算出来。 通用计算公式为: ? 1 2 mro(Child(Base1,Base2)) = [ Child ] + merge( mro(Base1), mro(Base2), [ Base1, Base2] ) (其中Chil
阅读全文
摘要:设计模式是什么? Christopher Alexander:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样你就能一次又一次地使用该方案而不必做重复劳动。” 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一
阅读全文
摘要:数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。 比如:列表、集合与字典等都是一种数据结构。 N.Wirth: “程序=数据结构+算法” 分类 数据结构按照其逻辑结构可分为线性结构、树
阅读全文
摘要:设计模式 1、设计模式的定义 对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。 就是为了解决面向对象系统中重要和重复的设计封装在一起的一种代码实现框架,可以使得代码更加易于扩展和调用。 2、六大原则(SOL
阅读全文
摘要:算法基础 算法(Algorithm):一个计算过程,解决问题的方法。 N.Wirth: “程序=数据结构+算法” 一、时间复杂度 时间复杂度是用来估计算法运行时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢。 常见的时间复杂度(按效率排序) O(1) < O(logn) < O
阅读全文