随笔分类 -  0.17--算法

算法进阶--动态规划
摘要:动态规划算法实现最长公共子序列问题 从斐波那契数列看动态规划 斐波那契数列: 钢条切割问题(递推式需要自己总结出来) 钢条切割问题:自顶向下实现 时间复杂度O(2^n) 不采取 递归算法由于重复求解相同子问题,效率低 动态规划的思想: 每一次子问题只求解一次,保存求解结果 之后需要此问题时,只需要查 阅读全文
posted @ 2019-01-13 17:49 foremost 阅读(226) 评论(0) 推荐(0)
行为型模式
摘要:责任链模式 from abc import ABCMeta, abstractmethod class Handler(metaclass=ABCMeta): @abstractmethod def handle_leave(self, day): pass class GeneralManager 阅读全文
posted @ 2019-01-13 12:43 foremost 阅读(169) 评论(0) 推荐(0)
结构型模式
摘要:适配器模式 桥模式 from abc import ABCMeta, abstractmethod class Shape(metaclass=ABCMeta): def __init__(self, color): self.color = color @abstractmethod def dr 阅读全文
posted @ 2019-01-12 23:38 foremost 阅读(151) 评论(0) 推荐(0)
设计模式
摘要:一、设计模式和面向对象介绍 面向对象: 三大特性:封装(私有,公有)、继承、多态 接口: 在python中实现抽象类 抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计 二、面向对象设计SOLID原则 设计模式分类 简单工厂模式: 工厂方法模式 from ab 阅读全文
posted @ 2019-01-12 21:16 foremost 阅读(205) 评论(0) 推荐(0)
哈希表--树
摘要:哈希表--散列表 python 字典和集合是基于哈希实现的 树的实例: 模拟文件系统 阅读全文
posted @ 2019-01-11 18:48 foremost 阅读(155) 评论(0) 推荐(0)
数据结构
摘要:一、数据结构介绍 二、列表结构 数组与列表两点不同: 1、数组元素类型要相同 2、数组长度固定(定义好就不变了) 列表里面存的是地址 列表可以增删 三、栈的结构 先进后出 递归的数据结构就是栈 取栈顶,只是确定值,不是取出来 3{'stack': [1, 2]} 栈的应用: 括号匹配问题 队列的介绍 阅读全文
posted @ 2019-01-11 11:16 foremost 阅读(256) 评论(0) 推荐(0)
查找排序相关面试题
摘要:掌握lowb和nb+希尔、计数即可 线性查找: 二分查找: 阅读全文
posted @ 2019-01-10 23:28 foremost 阅读(239) 评论(0) 推荐(0)
希尔&计数&基数排序
摘要:一、希尔排序 shell_sort 计数排序 计数排序、基数排序、桶排序则属于非比较排序,算法时间复杂度O(n),优于比较排序。但是也有弊端,会多占用一些空间,相当于是用空间换时间。 计数排序的基本思想是:对每一个输入的元素a[i],确定小于 a[i] 的元素个数。所以可以直接把 a[i] 放到它输 阅读全文
posted @ 2019-01-10 11:49 foremost 阅读(181) 评论(0) 推荐(0)
排序NB三人组
摘要:排序NB三人组 快速排序,堆排序,归并排序 1、快速排序 方法其实很简单:分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。 这里可以用两个变量i和j,分别指向序列最左边和最右边。我们为这两个变量起个好听 阅读全文
posted @ 2019-01-05 16:13 foremost 阅读(204) 评论(0) 推荐(0)
2 算法查找&排序问题
摘要:一、查找 1、查找的概念: 2 顺序查找(linear search) 从头找到尾 3 二分查找(binary search): 二、列表排序 1、什么是列表排序 排序:将一组“无序”的记录序列调整为“有序”的记录序列 列表排序:将无序列表变为有序列表 输入:列表 输出:有序列表 升序和降序 内置排 阅读全文
posted @ 2019-01-02 17:48 foremost 阅读(252) 评论(0) 推荐(0)
1 算法入门
摘要:1、算法的概念 2、时间复杂度 3、空间复杂度 时间比空间重要,追求的是时间,宁可占用内存也要时间短,快速获取结果。 4、复习:递归 递归的两个特点: (1)调用自身 (2)结束条件 func1和func2不符合递归条件 func3与func4的区别: func3先打印后递归:3 2 1 func4 阅读全文
posted @ 2019-01-02 16:15 foremost 阅读(205) 评论(0) 推荐(0)