1.桶排序:这个算法就好比有11个桶,编号从0~10。每出现一个数,就将对应编号的桶中的放一个小旗子,最后只要数数每个桶中有几个小旗子就OK了。(http://blog.jobbole.com/100361/) 2.冒泡排序 ...
分类:
编程语言 时间:
2016-05-18 17:53:54
阅读次数:
136
评价一个算法的优劣应该从三个方面判断 1.时间复杂度 : 执行算法所耗费的时间,即时间复杂度 2.空间复杂度 : 执行算法所耗费的存储空间,主要是辅助空间 3.可读性和可操作性 : 算法应当易于理解,易于编程,易于调试等 时间复杂度 一般情况下,将算法所要求求解问题的输入量称为问题的规模,并用一个正 ...
分类:
编程语言 时间:
2016-05-09 00:01:49
阅读次数:
341
1.二叉堆1.1二叉堆的定义堆是一个完全二叉树结构(除了最底下一层,其他层全是完全平衡的),如果每个结点都大于它的两个孩子,那么这个堆是有序的。
二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(不用数组的第一个位置)
1.2二叉堆的性质
最大的元素在a[1] (root结点)
每个k的父亲在k/2
每个k的孩子在k*2和k*2+1
1.3二叉堆的操作1.3...
分类:
编程语言 时间:
2016-04-29 15:35:30
阅读次数:
164
形式:
采用sigmoid函数:g(z)=11+e?zg(z)=\frac{1}{1+e^{-z}}
其导数为g′(z)=(1?g(z))g(z)g^\prime(z)=(1-g(z))g(z)
假设:
即:
若有m个样本,则似然函数形式是:
对数形式:
采用梯度上升法求其最大值
求导:
更新规则为:
可以发现,则个规则形式上和LMS更新规则是一样...
分类:
编程语言 时间:
2016-04-22 19:32:34
阅读次数:
314
形式 h(x)=∑i=0nθixi=θTxh(x)=\sum_{i=0}^n\theta_ix_i=\theta^Tx代价函数:J(θ)=12∑i=1m(h(x(i)θ)?y(i))2J(\theta)=\frac{1}{2}\sum_{i=1}^m(h(x_\theta^{(i)})-y^{(i)})^2
LMS(Least Mean Squares)算法参数更新原则
梯度下降法,参数沿着使代价...
分类:
编程语言 时间:
2016-04-22 19:27:11
阅读次数:
143
我们之前学习的算法都是基于p(y|x;θ)p(y|x;\theta), 他的思想是找出找出一个决策边界来将两类分开,而生成算法是先对两个类别分别建模,为了将样本分开,将样本代入两个模型,看样本与哪个类别更匹配。
这种试图直接从输入xx映射到类别标签{0,1}的算法被称为判别学习算法;而通过计算p(x|y)(和p(y))来得到模型的算法被称为生成学习算法
通过贝叶斯函数得到p(y|x)=p...
分类:
编程语言 时间:
2016-04-22 19:24:16
阅读次数:
281
>>字符串匹配问题 字符串匹配问题即在匹配串中寻找模式串是否出现, 首先想到的是使用暴力破解,也就是Brute Force(BF或蛮力搜索) 算法,将匹配串和模式串左对齐,然后从左向右一个一个进行比较, 如果不成功则模式串向右移动一个单位,直到匹配成功或者到达匹配串最后仍然不成功,返回失败。 很明显
分类:
编程语言 时间:
2016-02-18 21:32:38
阅读次数:
217
package excel;import java.util.Scanner;public class doExcel { public static void main(String args[]){ Scanner input=new Scanner(Syst...
分类:
编程语言 时间:
2015-12-05 15:54:35
阅读次数:
158
1 package excel; 2 3 import java.util.Scanner; 4 5 public class doExcel { 6 public static void main(String args[]){ 7 8 Scanne...
分类:
编程语言 时间:
2015-12-05 12:46:19
阅读次数:
199
package excel;import java.util.Scanner;public class doExcel { public static void main(String args[]){ Scanner input=new Scanner(Syst...
分类:
编程语言 时间:
2015-12-05 11:15:04
阅读次数:
194