![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Yuixz
这个作者很懒,什么都没留下…
展开
-
【算法入门】二分查找
1.二分查找二分查找算法其输入是一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回其位置;否则赶回null。2,二分查找的python代码def binary_search(list, item): low = 0 high = len(list)-1 #low和high用于跟踪要在其中查找的列表部分 while low <= ...原创 2018-11-29 10:22:11 · 250 阅读 · 0 评论 -
【算法入门】快速排序
1.分而治之一种著名的递归式问题解决方法。 包括两个步骤:1)找出基线条件(比如数组为空或数组中只包含一个元素);2)不断将问题分解(缩小规模),直到符合基线条件。2.快速排序快速排序速度取决于选择的基准值 运行时间:平均情况下O(n*logn);最糟情况下:O(n^2)def quicksort(arr): if len(arr) < 2: ret...原创 2018-12-02 15:43:55 · 140 阅读 · 0 评论 -
【算法入门】选择排序
1.数组和链表数组中元素在内存中是相连的;链表中元素可存储在内存的任何地方,其中每个元素都存储了下一个元素的地址。 数组支持随机访问,链表只能顺序访问。 元素的位置称为索引。 在同一个数组中,所有元素的类型必须相同。 常见数组和链表的运行时间(数组读取速度快,链表的插入和删除速度快) 数组 链表 读取 O(1) O(n) 插入 O(n) ...原创 2018-11-30 11:05:50 · 131 阅读 · 1 评论 -
【算法入门】广度优先搜索
1.图最短路径问题。 解决最短路径问题的算法被称为广度优先搜索,广度优先搜索指出是否有从A到B的路径。 求最短路径的两个步骤:1)使用图建立问题模型;2)使用广度优先搜索解决问题。 图由节点和边组成,一个节点可能与众多节点直接相连,这些节点被称为邻居。2.广度优先搜索一种用于图的查找算法 可解决两个问题:1)是否存在路径;2)哪条路径最短3.队列只支持两种操作:入队和出队...原创 2018-12-04 20:03:42 · 418 阅读 · 0 评论 -
【算法入门】递归
1.递归函数存在的问题:程序无限循环 递归函数的两部分:基线条件和递归条件 递归条件指的是函数调用自己;基线条件指的是函数不再调用自己,从而避免形成无限循环。2.递归函数python实现def countdown(i): print(i) if i<=1: #基线条件 return i else: #递...原创 2018-12-01 21:27:35 · 195 阅读 · 0 评论 -
【算法入门】最大网络流问题
一.网络与流1.基本概念与术语(1)网络:G是一个简单有向图, 。满足三个条件: 1)有一个源点S(入度为0:发点) 2)有一个汇点T(出度为0:收点) 3)每条边(原创 2018-12-03 20:06:54 · 1542 阅读 · 0 评论 -
【算法入门】散列表
1.散列函数条件:1)必须一致;2)不同输入应映射到不同的数字(索引),同样的输入映射到相同索引。 散列函数知道数组有多大,只返回有效索引2.散列表也称为散列映射、映射、字典和关联数组 python中提供的散列表实现为字典。 散列表由键和值组成book = dict()#book = {} #python创建散列表的快捷方式book["apple"] = 0.67...原创 2018-12-03 20:28:49 · 428 阅读 · 0 评论