分治法:归并排序

归并排序的思想: 对集合的排序,可以看成他们子集合的分别排序,然后把各个有序的子集合合并成有序的全集,这里一般把原集合尽可能的均分为2个子集合。 可以看出这里有两个工作量,一是把原数组不断的对半切,直到子问题足够小可以直接解出,二是把两个有序的数组合并成一个有序的数组。 def MergeSort(arr,N): # 递归出口,出口需要返回当前的那个数 if N == 1: return arr # 以下当作某一层的处理 middle
分类: 其他 发布时间: 12-17 22:29 阅读次数: 0

分治法:快速排序,3种划分方式,随机化快排,快排快,还是归并排序快?

快速排序不同于之前了解的分治,他是通过一系列操作划分得到子问题,不同之前的划分子问题很简单,划分子问题的过程也是解决问题的过程 我们通常划分子问题尽量保持均衡,而快排缺无法保持均衡 快排第一种划分子问题实现方式,左右填空的双指针方式 def partition_1(arr,low,high): # 把基准元素取出来,留出一个空位,这里是在首位,这种留出空位的方式,比较容易理解 pivot = arr[low] # 循环体终止条件,因为是先走右边再走左边,终止的
分类: 其他 发布时间: 12-17 22:29 阅读次数: 0

分治法:关于选择算法,找最大,找最小,同时找最大和最小,找第二大

找最大或者最小,蛮力算法为最优的算法,需要比较n-1次 # 这个已经是最优的算法了,比较n-1次 def findMax(arr): max_pivot = arr[0] for i in range(1,len(arr)): if arr[i] > max_pivot: max_pivot = arr[i] return max_pivot def findMin(arr): min_pivot =
分类: 其他 发布时间: 12-17 22:29 阅读次数: 0

找中位数,找第k小,还存在问题

找第k小 上次介绍了找第二大使用的方法时,使用锦标赛的方法,找到最大,在最大的手下败将里找第二大,也就是亚军在冠军的手下败将里产生,亚军只败给过冠军,这种方法比较次数时(n-1) + (logn-1),这个时间复杂度最优的方案了为O(n) 那么怎么找第k大了,季军只能在冠军和亚军的手下败将里产生,第四名只能在前三名手下败将里产生。。。。这个方法也是O(n),但是需要记录每个选手的手下败将名单 还有一种分治的方案,思路来源于快排,快排每次划分子问题,划分成3个部分,小于pivot,等于pivot
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

分治法:BFPTR算法找第k小

BFPTR算法 来自于Blum、Floyd、Pratt、Rivest、Tarjan这5个人,一起发布了一篇名为 “Time bounds for selection” 的论文,有兴趣可以看一下:https://pan.baidu.com/s/1QEWjZBrjEJ7zTIrI99sFYA。 下面是一种实现方式,这种有一个问题,只是找到中位数了,标号还要搜索然后此时的数组是有结构规律的,划分数组的时候使用的是快排的划分,没有用到这里insert_sort排序产生的局部有序的特征,改进优化方法:在
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

算法优化:最大字段和,双指针遍历(n^2),分治法(nlogn),动态规划(n)

最大字段和,有点类似与最长公共子序列,这里是求连续一段求和最大的一段,比如[-2,11,-4,-4,13,-5,-2]最大求和的连续一段为11,-4,-4,13,和为16. 最基本的双针模型遍历,两个指针,分别代表最大和序列的起始和终止,算法时间复杂度O(n^2) # 以下算法时间复杂度O(n^2) def maxSum(arr): num = len(arr) # 记录最好的结果,这个结果是一个不断逼近的过程 best_result_start =0 best
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

我的模型能跑多快——神经网络模型速度调研(一)

前言对于神经网络,我们更多谈的是其精度怎么样,有百分之零点几的提升。但是如果谈到速度的话,深度学习神经网络相比于传统的算法来说,速度恐怕没有那么快了。那么我们什么时候需要提升速度呢?假如有以下的场景:将模型运行在手机上需要实时的场景,比如高速摄像机捕捉动作在嵌
分类: 企业开发 发布时间: 12-17 22:28 阅读次数: 0

Flutter实践——实现一个动态页

作者:腾讯 - 小德(任晓帅 koudleren) 前言 Flutter是Google新出的跨平台开发框架,目前国内外已经有许多产品将Flutter用到正式的生产环境,本文用Flutter实现了一个瀑布流的动态页面。 动态页 1、页面效果 废话不多说,先上图,
分类: 移动开发 发布时间: 12-17 22:28 阅读次数: 0

一文应用 AOP | 最全选型考量 + 边剖析经典开源库边实践,美滋滋

前言 繁多的 AOP 方法该如何选择?应用的步骤过于繁琐,语法概念看得头晕脑胀? 本文将详细展示选型种种考量维度,更是砍掉 2 个经典开源库的枝节,取其主干细细体会 AOP 的应用思想和关键流程。一边实践 AOP 一边还能掌握开源库,岂不快哉! 一、6 个要点
分类: 移动开发 发布时间: 12-17 22:28 阅读次数: 0

(译)React-Router4的变化

原文地址:戳这里 项目地址:传送门 首先,这篇文章的目的并不是为了重新叙述一遍React-Router4的文档。接下来我要说的内容,将会覆盖React-Router的大多数API,但是真正的目的是揭开React-Router4成功的模式和策略。 在开始本文之
分类: 编程语言 发布时间: 12-17 22:28 阅读次数: 0

解决代码中重复的捕获 promise 错误的 try catch 语句

promise promise 的出现,提供了优雅的异步解决方式,但是,多个连续继发 promise 写法依然繁琐。 let promise = new Promise(function(resolve, reject){ // ... if(/*
分类: 编程语言 发布时间: 12-17 22:28 阅读次数: 0

前端埋点统计方案思考

埋点即监控用户在应用表现层的行为,于产品迭代而言至关重要。埋点数据分析是产品需求的 来源,检验功能是否达预期的 佐证。前端较服务端更接近用户,本小白将在此对前端埋点统计方案述说一二。 采集埋点数据可做如下分析(以百度统计为例): 将 用户属性、用户行为 转化
分类: 编程语言 发布时间: 12-17 22:28 阅读次数: 0

beta冲刺(5/7)

团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 推进后端完成安卓端接口的开发 在测试中发现返回地图接口存在错误(待修复) 推进前端完成美食排行榜界面 推进web端各个页面的相关接口对接 接下来的计划 & 还剩下哪些任务 协助整合安卓端各个页面 协助制作展示视频 有哪些收获、困难和疑问 收获:学会绘制矢量图,并转换成xml,为食堂平面图引导功能提供地图 组员2:赵畅 过去两天完成了哪些任务 根据项目需求写了一部分代码,修改
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

Spring Security(十五):5.6 Authentication

Thus far we have only taken a look at the most basic authentication configuration. Let’s take a look at a few slightly more advanced options for configuring authentication.到目前为止,我们只看了最基本的身份验证配置。我们来看一些稍微更高级的配置身份验证选项。 5.6.1 In-Memory Authentication We
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

google-命名约定

通用命名规则 总述 函数名,变量名,文件名要有描述性;少用缩写. 1.文件命名 文件名要全部小写,可以包含下划线()或连字符(-),没有约定,""更好些. my_useful_class.cc 2.类型命名 类型名称的每个单词首字母均大写,不包含下划线:MyExcitingClass, MyExcitingEnum. 所有类型命名--类,结构体,类型定义(typedef), 枚举,类型模板参数 -- 均使用相同约定 // 类和结构体 class UrlTable{} class UrlTabl
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

'const char [2]' to '<type error>'

这种情况一般要注意检查一下传的参数是char‘’ 还是 string"",是单引号还是双引号。
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

https://www.cnblogs.com/youyouluo/p/6853436.html

https://www.cnblogs.com/youyouluo/p/6853436.html
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

I/O多路复用之select、poll、epoll

很早之前有写过篇IO多路复用的文章:https://www.cnblogs.com/klcf0220/archive/2013/05/14/3077003.html 参考链接:https://segmentfault.com/a/1190000003063859 select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

beta版本冲刺五

目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员:何宇恒 展示组内最新成果 团队签入记录 燃尽图 站立会议合照 会议耗时记录(每次追加记录) 个人PSP 个人学习进度条 队名:404 Note Found 组长博客:https://www.cnblogs.com/heihuifei/p/10133847.html 作业博客:https://edu.cnblogs.com/camp
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0

算法优化:最大m个子段和,问题规模从1个子段和扩展到m个,动态规划

最大m个子段和,问题规模从1个子段和扩展到m个,动态规划 问题规模由2个决定,一是子段数m,二是元素个数n,准确的说是最后一个子段终止的标号 b(i,j)定义为:前j个元素中有i个子段,且第i个子段包含j,i个子段和为b(i,j) 那么原问题的最优解为max{b(m,j)},m<=j<=n 还是不是针对原问题动态规划,动态规划的问题是可能解,最后在可行解里面找最优解 根据b(i,j)定义,有两种情况,第一种情况arr[i]是第i个子段的一部分,那前面j-1的尾巴也是属于第i个子段,可以把前面j
分类: 其他 发布时间: 12-17 22:28 阅读次数: 0