一个有n个元素的序列A中,出现次数大于n/2的元素称为主元素。现给定一个序列(保证存在主元素),求其主元素。 一种思路是Boyer和Moore提出的减治法,可以在线性时间内求得主元素。如果不确定序列是否存在主元素,还需要再加一个线性的判断。 以下假设A的主元素存在,且出现了k次,则其他元素出现的次数 ...
分类:
其他好文 时间:
2016-05-29 23:02:28
阅读次数:
373
题目描述:给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。
样例:给出数组[1,2,1,2,1,3,3] 返回 1
之前,有果一道“主元素”的问题(详见:点击打开链接),我们用的是“消去法”,因为主元素的个数大于元素总数的二分之一,可以保存只有一个元素的hash表,通过消去法解决。
现在条件变了,变成大于三分之一了。那么可以采用相似的消去的办法,令哈希表存储...
分类:
其他好文 时间:
2016-05-27 13:06:53
阅读次数:
197
题目来源:http://www.lintcode.com/zh-cn/problem/majority-number/ 这道题注意题意,给出的数组一定是存在这个主元素的,不能给一个没有主元素的数组测试。 方法1:穷举法 使用两个for循环计算出每个元素出现的次数, 如果该元素出现次数大于数组元素的二 ...
分类:
其他好文 时间:
2016-05-09 22:07:25
阅读次数:
240
1.快速排序 不稳定 分而治之 找主元pivot,小于主元划分为一个子集,大于主元的划分为一个子集 然后进行递归 最好情况:每次主元正好中分,T(N) = O( NlogN ) 选主元 的方法有很多,这里用 取头、中、尾的中位数。 直接选A[0]为pivot,时间复杂度T ( N ) = O( N ...
分类:
编程语言 时间:
2016-05-07 23:45:08
阅读次数:
309
快速排序由C.A.R.Hoare(1962) 开发的,该算法在数组中选择一个称为主元(pivot)的元素,将数组分为两部分,是的第一部分中的所有元素都小于或等于主元,而第二部分的所有元素都大于主元。对第一部分递归地应用快速排序算法,然后对第二部分递归地应用快速排序算法。 ...
分类:
编程语言 时间:
2016-05-03 14:06:19
阅读次数:
164
最近数值计算学了Guass列主消元法和三角分解法解线性方程组,具体原理如下: 1、Guass列选主元消去法对于AX =B 1)、消元过程:将(A|B)进行变换为,其中是上三角矩阵。即: k从1到n-1 a、 列选主元 选取第k列中绝对值最大元素作为主元。 b、 换行 c、 归一化 d、 消元 2)、 ...
分类:
其他好文 时间:
2016-04-27 12:30:31
阅读次数:
295
写在前面这类题目之前还真没接触过,没什么好的思路。不过看要求又是一道考虑时间复杂度的问题,需要掂量(考虑)一下自己的算法有没有达到要求。根据自己目前的能力写出来的算法还真没做到O(n)的时间复杂度,应该是O(n^2),不过居然通过了lintcode测试,而且是100% 数据通过测试,费解ing。
查阅资料发现主元素问题是《编程之美》上的原题,而且lintcode上还有主元素 II、主元素 III问...
分类:
其他好文 时间:
2016-04-22 20:28:55
阅读次数:
298
用的最多的排序 平均性能:O(nlogn){随机化nlogn} 原地址排序 稳定性:不稳定 思想:分治 (切分左右) 学习方式:自己在纸上走一遍 def PARTITION(A,p,r): x = A[r] # 锚点 主元{大于它放一边,小于的放另一边} i = p - 1 for j in ran...
分类:
编程语言 时间:
2016-02-02 14:19:31
阅读次数:
174
高斯消元可能这名字听着挺高大上……但其实……没错他就是挺高大上的……他可以用来解线性方程组(不知道线性方程组是什么的自己去百度吧)!!!至于什么逆矩阵之类的我还没有研究。。。这里我先介绍一下主元高斯消元法x-2y+3z=6(1)4x-5y+6z=12(2)7x-8y+10z=21(3)这是一个三元一...
分类:
其他好文 时间:
2016-01-26 12:33:55
阅读次数:
155
快速排序算法跟归并排序算法一样,都是利用的是分治原则,通过不断将一个未排序的数组进行划分排序,直到最后组成一个有序的数组。快速排序算法的原理就是从未排序的数组中取出一个数(一般是第一个或者是最后一个元素)作为主元,将未排序数组中小于这个主元的元素放在主元的左边,大于主元的元素放在主元的右边。然后.....
分类:
编程语言 时间:
2016-01-22 14:19:52
阅读次数:
139