排序常用的算法有:插入算法(直接插入算法、折半插入算法、希尔算法)、选择算法(简单选择算法、堆排序算法)、快速算法(冒泡排序、快速排序算法)以下程序给出了各种算法的实现,其接口为voidsort(int*array,intlen),每个文件实现一个算法,最后和main.c文件编译实现。1、直..
分类:
其他好文 时间:
2014-08-22 18:12:10
阅读次数:
273
本文介绍从无序数组中选择最大值和最小值的最优算法。进而介绍采用快速排序思想的 RANDOMIZED-SELECT 选择算法来查找给定位置 i 的值,或获取中位数(median)。快速排序会递归地处理划分的两边,而 RANDOMIZED-SELECT 则只处理一边。所以快速排序的期望运行时间是 Θ(n...
分类:
其他好文 时间:
2014-07-24 04:58:28
阅读次数:
355
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题
给定一批查询日志,数量为n。其中,有的查询出现了多于n/3次,请在线性时间内,找到所有满足条件的查询。
分析
如果初次遇到这个问题,我们会有什么样的思路呢?
采用hashmap进行计数,O(n)的空间,O(n)的时间进行排序,O(nlogn)快速选择算法,这个也可以做到O(n)...
分类:
其他好文 时间:
2014-07-18 22:18:42
阅读次数:
279
1.冒泡冒泡就是 1 2 3 4 5 6 7 8 9 2 1 3 4 5 6 7 8 9 2 3 1 4 5 6 7 8 9 2 3 4 1 5 6 7 8 9 2 3 4 5 1 6 7 8 9 。。。。。。。。。 ...
分类:
其他好文 时间:
2014-07-15 23:27:38
阅读次数:
247
http://www.blogjava.net/zhenandaci/推荐这个博客,博主真的很厉害,把基础的用到的文本分类方法都写上了!比较推荐的文章:文本分类入门(十)特征选择算法之开方检验文本分类入门(番外篇)特征选择与特征权重计算的区别其他都同样很好!!
分类:
其他好文 时间:
2014-07-14 23:06:52
阅读次数:
235
package chap09_Medians_and_Order_Statistics;import
static org.junit.Assert.*;import java.util.Random;import org.junit.Test;public
class SearchAlorithm...
分类:
其他好文 时间:
2014-06-12 17:26:37
阅读次数:
316
问题
给定N个元素的数组,求第k大的数。
特例
当k=0时,就是求最大值,当k=N-1时,就是求最小值。
应用
顺序统计
求top N排行榜
基本思想
使用快速排序方法中的分区思想,使得a[k]左侧没有更小的数,右侧没有更大的数
性能
快速选择算法的复杂度...
分类:
其他好文 时间:
2014-06-08 09:58:08
阅读次数:
211
找出一个数组的最大值和最小值是比较容易的,我们只需遍历一次数组即可。但是寻找一个数组的第i小或者第i大,就需要一些技巧使得查找的时间尽可能小。随机化划分选择算法是一个时间复杂度为O(n)的算法。int
fIndmax(int a[],int p,int r,int i){ if(p==r) ...
分类:
其他好文 时间:
2014-05-30 01:57:38
阅读次数:
269
快速选择算法,就是从给定的一个集合S={a1,a2,...an}中选出第K个大小的数,或者给出其所在的下标之类的。
如果使用排序,比如merge_sort,然后返回第K个元素的下标,复杂度是O(NlogN)
如果使用heap_sort,或者优先队列,则复杂度是O(NlogK)
如果使用quick _sort的一个变种,叫 quick select,则平均复杂度为O(N),最坏复杂...
分类:
其他好文 时间:
2014-05-09 20:48:02
阅读次数:
841