Fork me on GitHub
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页

2018年3月3日

简单工厂模式

摘要: 一、内容 不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。 二、角色 工厂角色(Creator) 抽象产品角色(Product) 具体产品角色(Concrete Product) 三、优点 隐藏了对象创建的实现细节 客户端不需要修改代码 四、缺点 违反了单一职责原则, 阅读全文

posted @ 2018-03-03 01:27 vmaze 阅读(167) 评论(0) 推荐(0) 编辑

算法之动态规划问题

摘要: 态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推的方式去解决。 动态规划的核心点:定义状态与转移方程(最优子结构)重新定义问题: 一、最长上升子序列(LIS):给定一个序列X,求X长度最大的连续递增的子序列。例:X=[1,7,2,8,3,5,2],LIS(X)=[1,2,3 阅读全文

posted @ 2018-03-03 01:24 vmaze 阅读(137) 评论(0) 推荐(0) 编辑

斐波那契数列

摘要: 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) 阅读全文

posted @ 2018-03-03 01:23 vmaze 阅读(142) 评论(0) 推荐(0) 编辑

贪心算法找零问题

摘要: 找零问题:假设商店老板需要找零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 阅读全文

posted @ 2018-03-03 01:22 vmaze 阅读(203) 评论(0) 推荐(0) 编辑

算法之迷宫问题

摘要: 题目:给一个二维列表,表示迷宫(0表示通道,1表示围墙)。给出算法,求一条走出迷宫的路径。 maze = [ [1,1,1,1,1,1,1,1,1,1], [1,0,0,1,0,0,0,1,0,1], [1,0,0,1,0,0,0,1,0,1], [1,0,0,0,0,1,1,0,0,1], [1, 阅读全文

posted @ 2018-03-03 01:21 vmaze 阅读(232) 评论(0) 推荐(0) 编辑

常用排序算法

摘要: 目录 一、冒泡排序 二、选择排序 三、插入排序 四、快速排序 五、堆排序 六、归并排序 七、基数排序 八、希尔排序 九、桶排序 十、总结 一、冒泡排序 1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样 2、代码关键点: 趟数:n-1趟 无序区 阅读全文

posted @ 2018-03-03 01:17 vmaze 阅读(181) 评论(0) 推荐(0) 编辑

其他排序

摘要: 一、基数排序 import random from timewrap import * def list_to_buckets(li, iteration):#这个是用来比较每个位置的大小的数字 """ 因为分成10个本来就是有序的所以排出来就是有序的。 :param li: 列表 :param i 阅读全文

posted @ 2018-03-03 01:16 vmaze 阅读(168) 评论(0) 推荐(0) 编辑

算法之-堆的简单介绍

摘要: 一、堆的分类 大根堆:一棵完全二叉树,满足任一节点都比其孩子节点大小根堆:一棵完全二叉树,满足任一节点都比其孩子节点小 二、堆的向下调整性质 前提:节点的左右子树都是堆,但是自身不是堆 三、堆排序 内置模块 优先队列:一些元素的集合,POP操作每次执行都会从优先队列中弹出最大(或最小)的元素。堆—— 阅读全文

posted @ 2018-03-03 01:11 vmaze 阅读(149) 评论(0) 推荐(0) 编辑

树和二叉树简介

摘要: 一、树 1、什么是树? 树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点 阅读全文

posted @ 2018-03-03 01:09 vmaze 阅读(238) 评论(0) 推荐(0) 编辑

列表查找以及二分查找

摘要: 一、列表查找 1、列表查找:从列表中查找指定元素 输入:列表、待查找元素 输出:元素下标或未查找到元素 2、顺序查找:从列表第一个元素开始,顺序进行搜索,直到找到为止。返回找到的那个索引 3、二分查找:从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一 阅读全文

posted @ 2018-03-03 01:08 vmaze 阅读(199) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页

导航