标签: 算法

15 篇文章

雇用问题
在新的一年里,你摇身一变成为了一个big boss,接下来你要雇佣一堆手下来给你干活,但是有了好的还会想要更好的,于是乎,你决定每天都进行面试,一旦面试到了新的更好的员工就把原来的员工换掉,为此你特底雇佣了介绍人,他会每天给你介绍一个人来让你进行面试。于是乎你每天的任务就是,面试,考虑要不要雇佣。 basic employ = 0 for i in…
分治思想的运用
写在开始 在本文我们将接触一些运用了分治思想的算法,进一步加深对分治法的理解,同时计算一些递归式。值得注意的是,分治思想在我们之后的学习中和生活的方方面面都有非常广泛的运用,还是很值得掌握的。下面我们开始吧。 乘方问题 计算a的n次幂,我们可以直接让n个a相乘,这很显然T(n)=n,那么如何将分治法于其中呢?根据我们前文将数组一分为二的操作,我们容…
分析分治法
经过了昨天的一小波插入算法的分析,相信你已经对计算时间复杂度有了一定的理解,接下来我们稍稍深入一点,开始研究下分治法下的算法该如何计算他的时间复杂度,首先我们从merge-sort算法开始。 def merge(Array): mid = length.Array/2 #a X = Array[1:mid] #a Y = Array�…
分析算法
说在开始 在本文中,我们将探讨下所谓的算法复杂到底是个什么玩意,以及各种奇奇怪怪的表示符号。 分析insertion sort算法 让我们从我们最早接触的插入算法开始,这里,我们不纠结于其具体的代码实现形式,只考虑其核心步骤,毕竟具体的代码实现都是大同小异的。现在我们回过来看我们的插入算法。我们把代码精简一下,变成伪代码。其实一般编写算法也是先写出…
最大子数组问题
本文我们将探讨下如何寻找一个数组的最大子数组。也就是找到其中的一个子数组,该子数组中的全部元素之和最大。前提是这个数组里面的数据有正有负,这样才有价值,不然全是正的很明显就是原本的那个数组。例如A=[2,3,-5,1,-4,6,-2,1],我们要寻找该数组的最大子数组,该如何做呢?这里我们的子数组元素至少为两个,不考虑只含有一个元素的数组。当然你要…
算法学习笔记(1)
排序问题 直接开门见山,过多的废话不多说,当我们拿到一堆扑克牌的时候,如何将它从小到大依次排好,这就是我们要解决的问题。我们有两种方法,下文我们挨个阐述。 插入算法 第一种算法,插入算法,直接上图解释,简单明了。 在图a中,我们拿到一个乱序数组,所谓的插入算法,就是从数组的第二个数开始,将数挨个与左边的数进行比较,如果比左边的数小,就将其与左边的数…
Numpy库学习
安装,请在命令行中输入以下代码用于安装Numpy库,安装完后我们便可开始学习了。 pip install Numpy 数组 在python中我们输入 import Numpy as np array = np.array([1,2,3,4,5]) 如此以来便定义了一个Numpy中的数组,这个数组与python中的还有有些许差距,例如我们可…
机器学习——逻辑回归项目(1)
数据分析与预处理 当我们拿到一堆数据的时候,首先应该做的是对其进行分析与处理。 import pandas as pd data = pd.read_csv("creditcard.csv")#读取数据 print(data.head())#显示数据,默认前五行 这里不建议使用excel开打数据,因为数据一般而言都是成千上万条,打开所需的时间太久了…
Pygame学习笔记(5)
碰撞 为了监测碰撞,我们需要给能够碰撞的元素添加一个碰撞箱。我们不使用原来获得的矩形,毕竟那个真的是太大了。先给我们的player添加。 self.hitbox = self.rect.copy().inflate((-126,-70)) 在player的初始化器中,我们将原来的矩形复制并用inflate方法给它缩小一些作为我们的碰撞箱。 接下来给…
Pygame学习笔记(4)
给场景添加一些别的地图元素 这里视频中用到了pytmx,即地图绘制器,这里我们直接使用作者绘制好的地图。首先要确保电脑中安装了pytmx库。随后回到level.py中,将库导入。 from pytmx.util_pygame import load_pygame 在setup方法中我们创建地图的剩下的元素。 tmx_data = load_pyga…