
algorithm
文章平均质量分 67
晨阳夕露
这个作者很懒,什么都没留下…
展开
-
算法——二分查找算法(Java实现)
1、前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序2、原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分。可能描述得不是很清楚,若是不理解可以去网上找。从描述原创 2012-04-01 10:54:24 · 38650 阅读 · 10 评论 -
算法——K均值聚类算法(Java实现)
1、用途:聚类算法通常用于数据挖掘,将相似的数组进行聚簇2、原理:网上比较多,可以百度或者google一下3、实现:Java代码如下package org.algorithm;import java.util.ArrayList;import java.util.Random;/** * K均值聚类算法 */public class Kmeans { privat原创 2012-03-31 16:56:08 · 30716 阅读 · 5 评论 -
算法——K均值聚类算法扩展应用(Java实现)
1、前面一篇文章算法——K均值聚类算法(Java实现)简单的实现了一下K均值分类算法,这节我们对于他的应用进行一个扩展应用2、目标为对对象的分类3、具体实现如下1)首先建立一个基类KmeansObject,目的为继承该类的子类都可以应用我们的k均值算法进行分类,代码如下package org.cyxl.util.algorithm;/** * 所有使用k均值分类算法的对象原创 2012-05-25 16:25:07 · 4305 阅读 · 0 评论 -
排序算法总结
转自:http://www.cnblogs.com/longyi1234/archive/2010/03/22/1691904.html按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序转载 2013-05-14 11:04:31 · 841 阅读 · 0 评论 -
算法——TOP K问题最小堆实现
1. 问题背景在实际应用中,我们经常会遇到在一大推数据中找出最大的几个数的问题,也就是我们提到的TOP K问题。K表示需要找出数据的数量2. 解决方案TOP K问题也有多种解决方案,比如排序,最后截取靠前或者靠后的K个数据。当数据量小的时候,排序解决起来当然可以,算法简单,排序算法也有很多现成的。当数据量很大时,维护一个很长的数组,不管是空间存储上还是排序耗费的时间上都可能难以接受。这时我们可以采用原创 2016-05-11 16:46:22 · 4702 阅读 · 0 评论 -
算法——TOP K问题最小堆实现扩展
概述上文我们讲到TOP K问题最小堆的实现,采用的比较基本数据类型int。这里我们将扩展到比较对象代码实现这里我们直接上代码,这里的扩展最小堆我们取名为ExMinHeap,实现如下package org.cyxl.common;/** * 扩展最小堆,采用泛型,存储的对象必须实现Comparable接口原创 2019-07-02 16:00:50 · 1518 阅读 · 0 评论