上一篇提到,快速排序的平均时间复杂度是O(nlgn),比其他相同时间复杂度的堆排序、归并排序都要快,但这是有前提的,就是假定要排序的序列是随机分布的,而不是有序的。实际上,对于已经排好的序列,如果用快速排序时间复杂度是O(n2)。为应对这样的有序序列,于是出现了本篇要讲的随机化快速排序(Random...
分类:
编程语言 时间:
2015-06-22 01:08:27
阅读次数:
142
这个算法是用于目标检索的比较快速的一个算法,参考Randomized Visual Phrases for Object Search。
算法的流程如下:
//图片训练阶段
1读入N张图片
2 转换成灰度图
3 检测N张图片的特征点,本算法中应用的是SIFT特征。
4 生成描述子
5 描述子聚类,生成visual word,用kmeans()算法完成。
6 将图片库中的图片用另...
分类:
其他好文 时间:
2015-04-03 15:30:43
阅读次数:
185
之前的一篇笔记曾分析过,Go的map在底层是用hashmap实现的。由于高效的hash函数肯定不是对key做顺序散列的,所以,与其它语言实现的hashmap类似,在使用Go语言map过程中,key-value的插入顺序与遍历map时key的访问顺序是不相同的。熟悉hashmap的同学对这个情况应该非常清楚。
所以,本文要提到的肯定不是这个,而是一个比较让人惊奇的情况,下面开始说明。
1. 通过...
分类:
其他好文 时间:
2015-03-31 16:11:21
阅读次数:
494
Randomized quicksort(随机化快速排序)running time is independent of input ordering.no assumption about the input distribution.(无需对输入序列分布做任何假设)no specific inpu...
分类:
编程语言 时间:
2015-01-04 22:48:05
阅读次数:
443
问题描述:
在一个数组中找出第k小的数。
算法:
快速选择select算法。
策略:五分化中项的中项做pivot
复杂度:最坏情况下O(n)
对比:
1、RANDOMIZED-SELECT,以序列中随机选取一个元素作为主元,可达到线性期望时间O(N)的复杂度。
2、SELECT,快速选择算法,以序列中“五分化中项的中项”,或“中位数的中位数”作为主元(枢纽元),在最...
分类:
编程语言 时间:
2014-12-26 01:01:11
阅读次数:
745
Today I reviewed online algorithms and summary it now.1. LRU is k-competitive;2. LFU cannot achieve a constant competitive ration;3. Randomized algori...
分类:
其他好文 时间:
2014-12-02 00:05:05
阅读次数:
177
randomized_select函数的期望运行时间是Θ(n),这里假设输入数据都是互异的.它返回数组A[p, r]中第i小的元素.该函数最坏情况运行时间为Θ(n2),即使是找最小元素也是如此,以为在每次划分时可能极不走运地总是按余下的元素中最大的来进行划分,而划分操作需要Θ(n)时间.我们也将看到...
分类:
编程语言 时间:
2014-10-16 13:07:52
阅读次数:
264
问题详述:http://coursera.cs.princeton.edu/algs4/assignments/queues.htmlDequeue. A double-ended queue or deque (pronounced "deck") is a generalization of a...
分类:
其他好文 时间:
2014-10-12 13:17:48
阅读次数:
244
问题描述:
Programming Assignment 2: Randomized Queues and Deques
Write a generic data type for a deque and a randomized queue. The goal of this assignment is to implement elementary data structures ...
分类:
其他好文 时间:
2014-09-22 23:40:03
阅读次数:
406
本文介绍从无序数组中选择最大值和最小值的最优算法。进而介绍采用快速排序思想的 RANDOMIZED-SELECT 选择算法来查找给定位置 i 的值,或获取中位数(median)。快速排序会递归地处理划分的两边,而 RANDOMIZED-SELECT 则只处理一边。所以快速排序的期望运行时间是 Θ(n...
分类:
其他好文 时间:
2014-07-24 04:58:28
阅读次数:
355