随笔分类 -  算法

摘要:算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此 阅读全文
posted @ 2018-08-08 21:54 GuoXY 阅读(984) 评论(1) 推荐(2)
摘要:一、接口类 接口类的实现主要为了接口化,归一化,统一化,就是每个类的方法都是固定的名称from abc import abstractmethod, ABCMeta class Payment(metaclass=ABCMeta): """父类实现的方法加入子类继承了必须实现,否则报错""" @ab 阅读全文
posted @ 2018-08-07 22:27 GuoXY 阅读(1587) 评论(0) 推荐(0)
摘要:设计模式 设计模式六大原则: 开闭原则:一个软件实体入类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该在不修改原有代码的情况下进行扩展 里氏替换原则:所有引用基类(父类)的地方必须能够透明的使用其子类的对象 依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依赖其抽象:抽象不应该依赖细节; 阅读全文
posted @ 2018-08-07 22:25 GuoXY 阅读(319) 评论(0) 推荐(0)
摘要:数据结构基础 数据结构 定义:简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。比如:列表、集合与字典等都是一种数据结构。 PS:“程序=数据结构+算法” 列表:在其他编程语言中称为“数组”,是一种基本的数据结构类型。 关于:列表的存储问题!数据结构的分类: 线性结构:数据结构中的元素存 阅读全文
posted @ 2018-08-07 22:20 GuoXY 阅读(579) 评论(0) 推荐(0)
摘要:算法基本概念 算法: 计算过程,解决问题的方法, 时间复杂度 用来评估算法运行效率的一个东西 以上几种算法分别表示了 算法的几种时间复杂度 依次为:O(1) O(N) O(N**2) O(N**3) 时间复杂度是用来估计算法运行时间的一个式子(单位)。 一般来说,时间复杂度高的算法比复杂度低的算法慢 阅读全文
posted @ 2018-08-05 21:31 GuoXY 阅读(684) 评论(1) 推荐(0)