算法
young_so_nice
这个作者很懒,什么都没留下…
展开
-
插入排序算法
插入排序: 原理: 1.插入排序, 从第二个数开始,先将第二个数做一个副本放在一旁(变量中)。 2.第二个数同前一个数比较,小于则用前一个数覆盖第二个数, 然后将副本放在前一个数前面 3.再将第三个数做一个副本取出,第三个数同前一个数比较,小于则用前一个数覆盖第三个数 (此时第二个数位置空闲), 然后用副本同前一个数的前一个数比较,如果小于,则用前一原创 2016-03-28 21:00:09 · 381 阅读 · 0 评论 -
快速排序算法
快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换; 5)重复第3、4原创 2016-03-30 20:46:08 · 305 阅读 · 0 评论 -
算法分析--将空格替换成字符
将一个字符数组中所有的空格全部替换成为”%20, 假设这个字符数组中有足够的空间存放新增的字符。 应用:http://localhaot:8080/xxx/xxx?xxx=%20zy%aslkfj 请求转码。 思路: 1,首先求出字符的实际长度。 2,定义一个新长度,用来增加新的字符。 3,循环字符数组的实际长度,计算出空格的个数。 4,循环字符数组,原创 2016-04-01 14:54:21 · 1099 阅读 · 0 评论 -
算法--判断字符数组中是否有相等的字符
问题:确定一个字符串的所有字符(ascii)是否全都不相同,不相同返回false,相同返回ture. 思路: 采用空间换时间的算法,如果字符组过大,一一比较会特别耗时间。 1,定义一个boolean型的数组arry。长度128.因为ascii码只有这么多。 2,循环这个字符数组,先将第一个字符,存到arry中设置为true, 只要下次遇到相同的就会返回tru原创 2016-04-01 15:10:42 · 2970 阅读 · 0 评论 -
算法--合并两个有序数组
问题:合并两个有序数组。 思路: 1,定义一个新数组,长度是两个数组长度之和。 2,定义三个数组下标索引,用来对数组进行比较。 3,如果两个数组索引有一个小于其对应数组长度,则继续一直循环。 值进行交换。 4,一但一个有一个索引大于等于其数组长度了,则需要判断另一个数组还是否需要比较。 源代码:public class hebingyou原创 2016-04-01 15:57:32 · 1537 阅读 · 0 评论 -
算法--字符串压缩
问题:字符串压缩算法:利用字符重复出现的次数,实现基本的字符串压 缩算法,比如aabbbccceeee变为a2b3c3e4,压缩后的字符串没有变短,则返回原来的字符串(这里指的是abcdef,这样就会变为a1b1c1d1e1f1。 思路: 1,先比较压缩后字符串的长度。 定义一个总长度初始化为0, 再定义一个字符出现的次数为1,原创 2016-04-01 16:46:03 · 5744 阅读 · 0 评论 -
冒泡排序算法与选择排序算法
**一,冒泡排序: 一种稳定的算法与选择排序算法比较 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有原创 2016-03-28 19:58:04 · 418 阅读 · 0 评论 -
Scala实现朴素贝叶斯算的改正(一)
前面写了用Scala实现朴素贝叶斯算法,其实是不完善的,没有真正的实现。 简单说,朴素贝叶斯算法,就是个体的每个属性都是相互独立的,计算他们的概率,这个不细说,可以参看:http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html 实现贝叶斯算法需要分两步走: 首先训练样本得到模型,然后根据模型,对个体的行为进行判断预测。原创 2016-07-24 21:00:18 · 682 阅读 · 0 评论