![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
friendpengyou
这个作者很懒,什么都没留下…
展开
-
[011]各类排序的Java实现
排序是开发中经常会用到的基本算法,学习数据结构、算法的这是入门基本功。下面就列出最常用的几类排序算法。1、冒泡排序冒泡排序是最大值或最小值就想气泡一样一点点生到最高层。public class BobbleSort{ public static void bobbleSort(int[] a) { for(int i = 0;i < a.length;i++) {原创 2015-12-03 11:37:29 · 303 阅读 · 0 评论 -
[044]利用FFM做新闻源评级一算法调研
FFM简介源码使用台湾大学LIBFFMhttp://www.csie.ntu.edu.tw/~cjlin/libffm/ LIBFFM是一个解决领域感知分解机的开放源码工具( field-aware factorization machines (FFM))。它已经赢得了最近的两个点击率预测( click-through rate prediction)比赛冠军。它支持:l2正则化logisti原创 2017-04-05 11:59:17 · 2538 阅读 · 0 评论 -
[038]如何选择机器学习分类器?
你知道如何为你的分类问题选择合适的机器学习算法吗?当然,如果你真正关心准确率,那么最佳方法是测试各种不同的算法(同时还要确保对每个算法测试不同参数),然后通过交叉验证选择最好的一个。但是,如果你只是为你的问题寻找一个“足够好”的算法,或者一个起点,这里有一些我这些年发现的还不错的一般准则。你的训练集有多大?如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k转载 2016-07-28 19:25:52 · 377 阅读 · 0 评论 -
[034]八大排序算法详解——基数排序
基本思想基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序可以采用两种方式:LSD(Least Significant Digital):从待排序元素的最右边开始计算(如果是数字类型,即从最低位个位开始)。MSD(Mos转载 2016-04-22 11:09:31 · 525 阅读 · 0 评论 -
[033]八大排序算法详解——插入排序
基本思想假设待排序的记录存放在数组R[0..n-1]中。初始时,R[0]自成1个有序区,无序区为R[1..n-1]。 从i=1起直至i=n-1为止,依次将R[i]插入当前的有序区R[0..i-1]中,生成含n个记录的有序区。算法实现直接插入排序算法,Java实现,代码如下所示:01public abstract class Sorte转载 2016-04-22 11:05:47 · 413 阅读 · 0 评论 -
[032]八大排序算法详解——选择排序
基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:初始状态:无序区为R[1..n],有序区为空。第1趟排序:在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1] 交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。……第i趟排序:第i趟排序开始时,当前有序区转载 2016-04-22 11:04:24 · 385 阅读 · 0 评论 -
[031]八大排序算法详解——冒泡排序
基本思想将被排序的记录数组R[0..n-1]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其 向上”飘浮”。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。具体过程,如下所示:初始状态:R[0..n-1]为无序区。第一趟扫描:从无序区底部向上依次比较相邻的转载 2016-04-22 11:02:38 · 338 阅读 · 0 评论 -
[030]八大排序算法详解——希尔排序
基本思想先取一个小于n的整数d1作为第一个增量,把待排序的全部记录分成dx个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插人排序。然后,取第二个增量d2直至所取的增量dt=1(dt算法实现希尔排序算法,Java实现,代码如下所示:01public abstract class Sorter {转载 2016-04-22 11:00:12 · 522 阅读 · 0 评论 -
[029]八大排序算法详解——快速排序
基本思想设当前待排序的数组无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:分解:在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准记录(不妨记为pivot)的关转载 2016-04-22 10:58:19 · 386 阅读 · 0 评论 -
[028]八大排序算法详解——堆排序
基本思想堆的定义n个关键字序列kl,k2,…,kn称为堆,当且仅当该序列满足如下性质之一(简称堆性质):ki≤k2i且ki≤k2i+1 或ki≥k2i且ki≥k2i+1(1≤i≤FLOOR(n/2))若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右转载 2016-04-22 10:53:40 · 573 阅读 · 0 评论 -
[027]八大排序算法详解——归并排序
基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:初始状态:无序区为R[1..n],有序区为空。第1趟排序: 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1] 交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。……第i趟排序: 第i趟排序开始时,当前有转载 2016-04-22 10:49:59 · 424 阅读 · 0 评论 -
[042]各类距离计算函数——Python版
1,欧式距离Python的zip函数可以为我们同时遍历两个数组、列表List,做距离计算可以减少很多代码。 n维项目的计算:def distance(vector1,vector2): d=0; for a,b in zip(vector1,vector2): d+=(a-b)**2; return d**0.5; 2,余弦相似度就是两个向原创 2017-03-24 14:23:10 · 2613 阅读 · 0 评论