自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 算法学习日记 day10

归并排序算法:归并排序(Merge Sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。先把数列分成相对均衡的两部分n//2,然后再把左边的(left)子数列和右边的(right)的子数列再各分成两部分;继续如此等分,直到只有一个元素。等分过程采用递归方法,每分一次,在内存开辟临时的记录区域。所有元素分完后,开始大小比较归并,从两个元素比较归并到n//2比较归并。具体详解我找到一篇很不错的文章在此推荐一下,不过他用的是java

2021-11-18 15:41:40 346

原创 算法学习日记 day09

快速排序:是对冒泡排序的一种改进,由C.A.R.Hoare在1960年提出。它的基本思想是:通过一轮排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,直到整个数据变成有序序列。分割时,先选择一个元素作为比较大小的基准(Pivot)数。把数列里小于Pivot数的元素放到前面,大于Pivot 数的元素放到后面。这个基准数可以任意取一个,般取开始、结束或中间位置的一个元素。由于该算法需要把不同部分的两部分数

2021-11-16 17:24:44 933

原创 算法学习日记 day08

今天开始学习排序算法冒泡排序:数据两两那个比较,大的放后面,小的放前面,就像冒泡,使用两层循环即可选择排序:经过一轮查找找到最小值放在第一个,再经过经过一轮查找找到第二小值放在第二个以此类推,也是两层循环嵌套。插入排序:从后面依次选择一个数和第一个比较,如果后面的小就交换,再从后面依次选择一个数和第二个比较,如果后面的小就交换,以此类推。实现使用两层循环即可。希尔排序:希尔排序(Shell Sort)又叫作缩小增量排序算法,是插入排序的一种更高效的改进算法。希尔排序的基本思想是:在n个元素的数列里,

2021-11-15 20:18:41 482

原创 算法学习日记 day07

邻接矩阵的实现主要使用的是二维数组邻接矩阵的建立与遍历:import numpy as npclass AdjacencyMatrix(): #邻接矩阵类 def __init__(self,n=2): self.Matrix=np.zeros((n,n)) #用0填充二维数组 def getMatrix(self): #打印邻接矩阵 for d in self.Matrix:

2021-11-11 20:12:07 278

原创 算法学习日记 day06

建立有序树并遍历,前提是数据有序。遍历有序树有四种方法:前序、中序、后序、分层遍历D(根节点)L(左子树)R(右子树)前序遍历是DLR,先访问根节点,然后从左至右,有左子树访问左子树,没左子树访问右子树中序遍历是LDR,先访问左子树,然后从左至右,左边访问完访问根节点后继续访问右半棵子树,从左至右后序遍历是LRD,先访问左子树,然后从左至右,左边访问完跳过根节点后继续访问右半棵子树,从左至右,最后访问根节点分层遍历显而易见就是逐层向下访问,访问完第一层才继续访问第二层import numpy a

2021-11-10 21:26:09 103

原创 算法学习日记 day05

昨天还学习了一下python类的用法​ 1.类的定义​ 类一般用class定义,通用习惯为首字母大写,在python3中继承object类,什么是继承object类,我在知乎上找到了答案继承 object 类的是新式类,不继承 object 类的是经典类,在 Python 2.7 里面新式类和经典类在多继承方面会有差异:class A: def foo(self): print('called A.foo()')class B(A): passclass C

2021-11-09 21:51:48 715

原创 算法学习日记 day04

队列:从一端插入数据,另一端删除数据元素,插入的一端叫前端(front)移除的叫后端(rear),也叫作先进先出FIFO(first in first out)在Python中的简单使用:值得注意的是在python中使用get()取出数据后会进行删除import queue #导入queue包str='我是天才'FIFO=queue.Queue() #Queue()提供队列对象和方法i=0while i<=len(str)-1: FIFO.put(

2021-11-09 08:49:07 84

原创 算法学习日记 day03

之前一直忙没有时间继续学,隔了好久没看python都手生了第二题:对任意合数进行质因数分解n=int(input("num="))k=2print(n,"=",end='')while k<=n: if n%k==0: print(k,end='') if k-n!=0: print("*",end='') n=n/k else: k=k+1想法是从2开始,如果这个数和n相等那么就说明

2021-11-03 15:35:37 95

原创 算法学习日记 day02

今天看完了第二章,主要是用程序实现了一些数学问题,如闰年求解等,都很基础之粗粗看了一下就过去了。章末给出了三个实验题。我自己做了一下,并集合网上给的实例实现了题目的求解。1.求两个正数的最大公约数,要求循环次数最优(根据书上例题改编)def t1(x,y): bigger=0 #xy中大的那个数 if x>y: #判断xy哪个大 bigger=x elif x<y: bigger=y else: print(

2021-10-16 20:29:31 92

原创 算法学习日记 day01

之前做学校项目给了一批图书经费,就买了一本python实现的算法书来学学,虽然要考研但是也不能放弃自己的专业技能。之前对于算法的接触很少,基本都是暴力枚举,然后稍微沾点边的大概就是冒泡算法了。这学期正好也有个python课,借此机会既学习了python又学习了算法,希望有一举两得之效。这个书的第一章的内容比较简单,什么是算法?按我自己的理解大概是解决问题的方法就是算法,书上给了一个公式:数据+代码=解决具体问题=算法,我理解的好像也差不多是这个意思。算法的质量好坏主要有四个因素:数据、算法时..

2021-10-14 20:14:28 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除