
基础算法
一些基础的常用算法,排序等
Scc_hy
不断进取的攻城狮
展开
-
MIT_股票市场仿真
## 调用包import matplotlib.pyplot as pltplt.style.use('ggplot')import randomimport numpy as np随机漫步的假设当前的价格包含了所有信息股票的波动不会超过市场基准表现考虑到势头的影响可以加入 momentum 变量,第二天的变化会随机延续上一次的价格变化class Stocks(obje...原创 2019-11-15 16:36:03 · 332 阅读 · 0 评论 -
MIT_计算机科学与程序:算法复杂度笔记
一、时间复杂度1、线性(Linear)def exp2(a, b): if b == 1: # 1 times return a # 1 times else: return a * exp2(a, b-1) # 2 timesexp2(2, 4)总共操作次数如下t(b)=3+t(b−1)t(b) = 3 + t(b-1)t(b)=...原创 2019-07-23 15:41:47 · 284 阅读 · 0 评论 -
MIT_计算机科学与程序:动态规划,重叠的子问题
在做递归的时候会产生很多的冗余计算,需要用暂存(将一些计算结果暂时记入到内存,当使用的时候直接调用)的方法进行优化最优子结构一、fib的快速方法def fib(n): global numbcalls_fib numbcalls_fib += 1 if n <= 1: return 1 return fib(n-1) + fib(n ...原创 2019-09-10 09:09:21 · 209 阅读 · 0 评论 -
一个n边正三角形内有几个正三角形(面试题复盘)
题目: 一个n边正三角形内有几个正三角形一、分析题目这题首先的思想是递归。对于递归的推演参考下图一个n边正三角形内有几个正三角形的个数y=y_n-1+delta(n)delta(n)=∑i=1ndelta(ni)delta(n) = \sum_{i=1}^n{delta(n_i)}delta(n)=i=1∑ndelta(ni)所以求解delta(n)是关键从中可以看出显然 △(delta(n_i)) 与 边长数i 有关。且有两部分组成,图中所示的上底和下底这个计算有点类似图像.原创 2020-06-02 13:19:18 · 3302 阅读 · 0 评论 -
狄克斯特拉算法
寻找起点到终点的最近路1、需要准备三个散列## 节点graph = {}graph['start'] = {}graph['start']['a'] = 6graph['start']['b'] = 2graph['a'] = {}graph['a']['fin'] = 1graph['b'] = {}graph['b']['a'] = 3graph['b']['fin...原创 2018-09-28 13:36:44 · 504 阅读 · 0 评论 -
集合覆盖问题——贪婪算法
1、问题抛出快速选用最少的广播台覆盖需要的地市states_needed = set(['mt','wa', 'or', 'id', 'nv', 'ut', 'ca', 'az'])stations = {}stations['kone'] = set(['id', 'nv', 'ut'])stations['ktwo'] = set(['id', 'wa', 'mt'])statio...原创 2018-10-10 17:27:39 · 5456 阅读 · 4 评论 -
大O表示法——执行操作的次数
O(n) 其没有特定的单位,它可以让我们比较操作次数,指出算法运行时间的增速。一、举例理解想要在一张纸上得到16个矩形1、方法一:画图片引自《算法图解》(如侵权删)很明显可以看出该方法需要操作16次,该方法一次只能完成一个矩形,操作效率为 1, 所以为了得到16个矩形需要操作16 / 1 = 16次。当将需求放大至n时,其操作次数为n,用大O表示为O(n)。1、方法二:折图...原创 2018-12-29 10:48:04 · 1288 阅读 · 0 评论 -
各类排序动态可视化(OpenCV)
参考修改ZQPei的GitHub Sorting_Visualization 项目链接修改后笔者GitHub项目链接以下仅列举出对原脚本有修改的排序算法windows 环境下1- 桶排序(BucketSort)# 加载包 import sys import os import copyroot_path = 'E:/Python Data/Sorting_v's...原创 2019-07-29 23:21:30 · 665 阅读 · 0 评论