![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
搬砖的乔布梭
这个作者很懒,什么都没留下…
展开
-
15.2Python数据结构与算法:目录的深度遍历与广度遍历
@概述广度优先遍历:层级上由浅入深对路径进行遍历;深度优先遍历:从最外层开始,依次对每个文件夹进行纵深遍历直到不再有子文件夹(完成第一个的纵深遍历,再来第二个);广度遍历可以使用队列实现; 深度遍历可以使用栈实现,也可以使用递归实现; collections.deque是一个可以从头部和尾部两个方向进行弹出的容器,我们使用它来模拟队列和栈;(列表也是可以的)@广度遍历-队列实...原创 2018-03-23 12:22:29 · 710 阅读 · 0 评论 -
15.1Python数据结构与算法:斐波那契数列的递归、非递归、生成器实现
@斐波那契数列fibonacci数列的前几项是这样的:0,1,1,2,3,5,8…;即从第三项开始的每一项,等于前面两项之和;通过令程序和设备求fibonacci数列的某一高位项,是运算力测试的一个经典问题;@求fibonacci的第N项:非递归实现# 0,1,1,2,3,5,8...# 求斐波那契数列第N项非递归实现def getFibonacci(n): a =...原创 2018-03-20 22:35:08 · 746 阅读 · 0 评论 -
15.4Python数据结构与算法:实现LRUCache缓存类
@概述LRUCache原理是将最近最少访问的(Least Recent Use)键值移出缓存,从而维护缓存容量在指定范围内通过collections.OrderedDict数据结构,可以字典键值的形式存储缓存数据通过不断将最新插入的键值移动到有序字典末尾,并将头部的数据清除的方式,我们可以动态维护缓存容量在指定的范围内,达到LRUCache算法的目的@工具实现# 引入有序字典from collections import OrderedDict# 定义LRUCache类class LR原创 2020-10-16 18:03:14 · 407 阅读 · 0 评论 -
15.3Python数据结构与算法:collections模块中的数据结构
@defaultdictdefaultdict继承自原生dict,允许通过传入工厂方法为key指定默认值def demoDefaultdict(): # 导入defaultdict from collections import defaultdict # 预定义生成默认值的工厂方法 def getDefault(): return '你妹' # 创建defaultdict对象,传入刚才的工厂方法 dd = defaultdict(原创 2020-10-16 16:36:17 · 262 阅读 · 0 评论 -
3.1 Go语言算法:切片处理
判断切片相等func AreEquivalentSlice(temp, answers []interface{}) bool { if len(temp) != len(answers) { return false } else { for i, v := range temp { //先判断类型是否相同 if reflect.TypeOf(v) != reflect...原创 2019-01-04 11:57:05 · 541 阅读 · 0 评论 -
3.2 Go语言算法:排序算法
选择排序/*选择排序,正序排列*/func SortSliceSelected(slice []int) { for i:=0;i<len(slice)-1;i++{ for j:=i;j<len(slice);j++{ if slice[j] < slice[i]{ slice[i],slice[j] = slice[j],slice[i] } ...原创 2019-01-04 11:54:11 · 411 阅读 · 0 评论 -
3.3 Go语言算法:判断素数
判断是否素数func IsPrime(n int) bool { if n == 1 { return false } //从2遍历到n-1,看看是否有因子 for i := 2; i < n; i++ { if n%i == 0 { //发现一个因子 return false } } return true}判断是否素数优化算法func Is...原创 2019-01-04 11:53:03 · 2124 阅读 · 3 评论 -
3.5 Go语言算法:水仙花与自幂数
判断水仙花数func IsNarcissistic(n int) bool { //153 a := float64(n / 100) b := float64(n % 100 / 10) c := float64(n % 10) return int(math.Pow(a, 3)+math.Pow(b, 3)+math.Pow(c, 3)) == n}判断自幂数自幂数定义:...原创 2019-01-04 11:49:51 · 469 阅读 · 0 评论 -
3.4 Go语言算法:求斐波那契数
递归求斐波那契数列第N项func GetFibonacciRecursively(n int) int { if n == 0 || n == 1 { return 1 } return GetFibonacciRecursively(n-1) + GetFibonacciRecursively(n-2)}循环求斐波那契数列第N项func GetFibonacciII(n in...原创 2019-01-04 11:48:09 · 338 阅读 · 0 评论 -
折半查找的递归实现和非递归实现
2、折半查找非递归实现: public int search(T key){ int low; int high; int mid; // 没数据直接返回无结果 if(data == null){ return -1; }原创 2015-12-10 01:18:37 · 1576 阅读 · 0 评论