母函数与排列组合

在谈论母函数问题之前,我们先看一个简单的问题描述:假如有两组数据(A,B)和(C,D),每组中选出一个构成一个组合,总共有几种选法?很显然总共有4种选法:AC,AD,BC,BD。而且很容易联想到这个式子(A+B)*(C+D)=A*C+A*D+B*C+B*D。式子中的几个乘积项就是上面的4种选法。假如把问题换一下:每组中选出一个或0个数据构成组合,总共有几种组合?那么结果就变成:{空},A,B,C,...
阅读(110) 评论(0)

关于冒泡排序复杂度O(n)

我在许多书本上看到冒泡排序的最佳时间复杂度是O(n),即是在序列本来就是正序的情况下。但我一直不明白这是怎么算出来的,因此通过阅读《算法导论-第2版》的2.2节,使用对插入排序最佳时间复杂度推算的方法,来计算冒泡排序的复杂度。1. 《算法导论》2.2中对插入排序最佳时间复杂度的推算  在最好情况下,6和7总不被执行,5每次只被执行1次。因此,    时间复杂度为O(n) 2. 冒泡排序的时间复杂度...
阅读(175) 评论(0)

五大常用算法——分治法,动态规划,回溯法,分支界限法,贪心算法

分治算法一、基本概念   在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……    任何一个可以用计算机求解的问题所需的计算时间都与其...
阅读(13271) 评论(2)

基数排序

基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。中文名...
阅读(222) 评论(0)

数学符号ln

ln在数学里表示的是以常数e(无理数,约等于2.71828...)为底的自然对数符号。即lnm=loge(m)其中,log (英语名词:logarithms)表示的是对数运算。当a^b=n时,也可表示为log(a)(n)=b。其中,a叫做“底数”,n叫做“真数”,b叫做“以a为底的n的对数”。 log(a)(n)函数叫做对数函数。...
阅读(169) 评论(0)

算法导论------渐近记号Θ、Ο、o、Ω、ω详解

目录:1.渐近精确界记号:Θ(big-theta)2.渐近上界记号 :O(big-oh)3.渐近下界记号 :Ω(big-omege)4.非渐近紧确上界:o(小-oh)5.非渐近紧确下界:ω(小-omege)6.渐近记号Θ、Ο、o、Ω、ω关系7.参考资料1.渐近精确界记号:Θ(big-theta)  假设算法A的运行时间表达式T1(n)为:T1(n)=30n4+20n3+40n2+46n+100  ...
阅读(161) 评论(0)

算法运行时间

1 大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。 logN  如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每一步都将问题的规 模缩减成几分之一 ,一般就会出现这样的运行时间函数。在我们所关心的范围内,可以认为运行时间小于一个大的常数。对数的基数会影响这...
阅读(174) 评论(0)

算法中这三个符号:Θ、Ω、Ο表示什么意思

ΘO(f(n)),给出了算法运行时间的上界,也就是最坏情况下的时间复杂度; Ω(f(n)),给出了算法运行时间的下界,也就是最好情况下的时间复杂度; Θ(f(n)),给出了算法运行时间的上界和下界,这里Θ(f(n))是渐近的确界,另外,并非所有的算法都有Θ(f(n))....
阅读(267) 评论(0)

狼图腾中五十句话

1、没有捕捉不到的猎物,就看你有没有野心去捕;没有完成不了的事情,就看你有没有野心去做。2、没有猎物我们就去寻找猎物,发现猎物我们就去追逐猎物。寻找、发现、追求、获得———这就是狼的生活要素。3、尽管面对上万只的黄羊,面对凶猛的老虎,我们都毫不退缩。但是面对人类的枪口,适当的转移是明智的。我们不缺乏成功的信念,但是我们绝不是痴心妄想只会送死的傻瓜。4、追逐猎物仅仅靠猛跑是不够的,尤其在对付大群猎物...
阅读(185) 评论(0)

狼道文化

狼是一种值得学习的动物,在狼的身上,有许多值得人们学习的精神。这些精神都是成功人士必备的精神,人生想要获得成功,就需要知道通向成功的密码,狼性,是你人生走向成功的唯一密码。目录1 狼道文化2 狼道文化剖析▪ 二 、强者心态▪ 三 、狼性忠诚风骨▪ 四 、目标追求;▪ 五 、狼性团队精神▪ 六 、组织和纪律▪ 七 、狼性智慧与谋略▪ 八 、准则及无畏▪ 九 、坚韧与耐性▪ 十 、100%执行▪ 十一...
阅读(125) 评论(0)

js解析php格式的表单到json对象

/** * JsonParse * Created by usher.yue. * User: usher.yue * Date: 17/9/7 * Time: 13:50 */class JsonConvert { /** *是否可合并 去除特殊类型和 日期类型 * @param value * @re...
阅读(800) 评论(0)

利用js解析php的表单数据

利用js解析php的表单数据/** * JsonParse * Created by usher.yue. * User: usher.yue * Date: 17/9/7 * Time: 13:50 * 心怀教育梦-烟台网格软件技术有限公司 */ var obj = { 'data[][classid][0]': '1000150097620084286', 'da...
阅读(239) 评论(0)

什么是僵尸进程?

可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所 有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集,除此之外,僵尸进程不再占有 任何内存空间。僵尸进程的来由,要追溯到Unix,U...
阅读(193) 评论(0)

Zookeeper学习笔记2-------group创建、查询、删除

下面一段代码涉及到了 ZooKeeper 创建group、为group添加member、列出group下面的 member、递归删除group。  这里我引用的是 ZooKeeper 3.4.10 提供的jar包。GroupHelper.javaimport java.io.IOException; import java.util.List; import java.util.concurren...
阅读(1687) 评论(0)

ZooKeeper学习笔记1-----------安装启动

ZooKeeper是一套协作服务,主要用来构建分布式架构的应用,通过ZooKeeper我们可以安全的处理分布式应用下的局部故障问题。我们知道ZooKeeper就是Hadoop中的分布式协作服务组件。下面我们进入ZooKeeper的安装部署。安装Zookeeper https://zookeeper.apache.org/ 我们打开ZooKeeper的官方地址然后去下载响应的package ,我...
阅读(826) 评论(0)

Node.js与PHP之间通过RSA算法实现签名验证

Node.js与PHP之间通过RSA算法实现签名验证做过web开发的同学都知道我们经常在接口间交互的时候为了防止数据伪造并 且保证安全性我们会采用签名的方式进行验证, 签名的算法我们一般选择RSA非对称加密算法。想了解更多签名与RSA算法知识可以去查阅PKCS#1、PKCS#7相关资料。笔者在做利用Node.js做单点登录的时候涉及到了Node.js项目中产生的签名,然后需要到PHP项目中去验签,...
阅读(510) 评论(0)

Linux zombie进程详细解析

Linux僵尸进程详细解析 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill-9也不能杀死僵尸进 程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继...
阅读(264) 评论(0)

Linux 线程分离状态

线程的分离与结合    在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性...
阅读(180) 评论(0)

linux 新建用户、用户组 以及为新用户分配权限

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主...
阅读(265) 评论(0)

golang简单实现一个基于TLS/SSL的 TCP服务器和客户端

简单实现一个基于TLS/SSL的 TCP服务器和客户端本篇文章介绍一下使用TLS/SSL创建安全的TCP通信,首先我们要准备一个数字证书和一个密钥关于如何产生密钥,请看下面文章: 简单实现一个基于TLSSSL的 TCP服务器和客户端 通过Openssl创建数字证书和密钥 TLS服务器端代码 TLS客户端代码 通过Openssl创建数字证书和密钥关于如何通过Openssl创建证书和私钥 TLS服务...
阅读(3255) 评论(0)
445条 共23页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1002274次
    • 积分:14188
    • 等级:
    • 排名:第962名
    • 原创:333篇
    • 转载:110篇
    • 译文:2篇
    • 评论:150条
    我的课程
    个人介绍
    岳东卫
    我是一枚来自于中国山东烟台的程序猿!
    未来几年目标成为一个优秀的开发者 ! (๑•̀ㅂ•́)و✧
    我的Github
    我的邮箱
    博客专栏
    最新评论