题目
统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输入4.
思路
首先第一种思路,必然是遍历数组,然后定义累加器,但是这种时间复杂度为O(n)
我们注意到数组是排序的,我们可以利用而分查找的特点,首先将第一个3找到,然后找出最后一个3,相减即可。
代码
public static in...
分类:
编程语言 时间:
2015-08-20 01:35:05
阅读次数:
149
当然前提是:有序数列,这里以升序为例!public class binarySearch { public static void main(String[] args) { int arr[]={1,2,3,4,5,6,7,8,9}; int key=9;...
分类:
其他好文 时间:
2015-08-19 16:29:58
阅读次数:
110
C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)虽然直接插入排序,冒泡排序以及二分查找是算法中最为基础以及老掉牙的话题,但作为一名算法的深爱者,有时候无聊时候总会将这些简单的话题重新理解并敲写一番,目的只是为了得到理解娴熟的程度。而且,我觉得越是简..
分类:
编程语言 时间:
2015-08-19 02:09:31
阅读次数:
290
题目:统计一个数字在排序数组中出现的次数。思路:对二分查找进行改进,找到数字在数组中第一次出现和最后一次出现的位置,这样就得到它出现的次数。以找第一次出现的位置为例:如果mid元素大于k,则在前半段找;如果小于k,则在后半段找;如果等于k,则要看mid的前一个元素是不是k,如果是,则在前半段找,如果...
分类:
编程语言 时间:
2015-08-18 01:01:51
阅读次数:
185
前言: 二分算法很常见,也很简单。但确实很高效!有了它,我们常常可以避免"暴力"!-------------------------------------------------1.二分漏洞 先贴一段代码,大家看看有没有问题? 1 int binarySearch(int *arr,int l.....
分类:
其他好文 时间:
2015-08-17 15:23:09
阅读次数:
126
给定一个排好升序的数组A[1]、A[2]、……、A[n],其元素的值都两两不相等。请设计一高效的算法找出中间所有A[i]
= i的下标。并分析其复杂度。
解析:首先分析一下这个数组,假设其中某个位置的A[i] = i,那么可以肯定的值,之前的A[x] > x,之后的A[x]
我给出的方法是二分查找,具体的做法是:我们假设一个新数组B,其元素是A[i] - i的值,这样...
分类:
编程语言 时间:
2015-08-16 18:21:53
阅读次数:
129
1 template<typename?T>
int?Func(const?T?a[],?int?i,?int?j,?const?T?&m)
{
????if?(i?==?j)
????{
????????return?(a[i]?==?m)???i?:?-1;
????}
????else?if?...
分类:
其他好文 时间:
2015-08-16 00:53:43
阅读次数:
88
Problem DescriptionAll you know Goldbach conjecture.That is to say, Every even integer greater than 2 can be expressed as the sum of two primes. Today...
分类:
其他好文 时间:
2015-08-15 16:25:19
阅读次数:
99
int binarySearch(int[] a, int value)
{
int low = 0;
int high = a.length - 1;
int mid;
while (low
{
mid = (low + high) / 2;//mid=low+(high-low)/2;
if (a[mid]
{
low = mid + 1;
}
else if (a...
分类:
其他好文 时间:
2015-08-15 13:34:53
阅读次数:
165
基本结构
常用接口
查找元素
计算节点个树
插入更新节点
最大节点与最小节点
查找排名为n的节点
查找键值为k的节点排名
近似节点
查找指定范围内的键值
删除最大最小节点
删除指定节点
二叉搜索树融合了二分查找的高效简洁以及链式数据结构删除元素的优雅。这样一个优秀的数据结构,使用的频率很高。如常见的LRU缓存淘汰算法等, 几乎任何可以想到的查找算法都可以用它来替换。日常工程代码中一般对效率不高,...
分类:
编程语言 时间:
2015-08-14 17:15:10
阅读次数:
172