如何在排序数组中,找出给定数字出现的次数
2015-07-27 09:55
435 查看
如何在排序数组中,找出给定数字出现的次数 ? 例如,数组 [1, 2, 2, 2, 3]中2的出现次数为 3
/* 如何在排序数组中,找出给定数字出现的次数 */ int findItemInorderArray(int *arr, int key, int start, int end) { assert(arr); assert(start>=0 && end>=0); if (start>end) return 0; //该关键字不存在 static int counter = 0; // 统计关键字key出现的次数 int index; index = (start+end)/2; int left,right; //当找到第一个关键字的位置后,从该位置向左(left),向右(right)查找该关键字 //因为是有序数组,两边一旦遇到不相等的元素,查找终止 left = right = index; if (key == arr[index]) { counter++; while ((--left) >= start && arr[left]==key) counter++; while ((++right) <= end && arr[right]==key) counter++; return counter; } else if (key > arr[index]) return findItemInorderArray(arr, key, index+1, end); else return findItemInorderArray(arr, key, start, index-1); }
相关文章推荐
- 【MongoDB】在windows平台mongodb切片集群(三)
- 无法打开登录所请求的数据库 "XXX"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败。
- MongoDB
- robot framwork 连接mysql
- vector,增加查改
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 详解HashMap的内部工作原理
- jQuery静态方法noop,camelCase,nodeName,trim使用和源码分析
- UVA 11383 Golden Tiger Claw
- .Net常见问题之C#中的委托
- 怎样使左侧菜单栏不随滚动条滚动
- 字符串移位包含的问题
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
- 前端自动化工具 -- grunt 使用简介
- Android(java)学习笔记130:ProgressBar使用的
- 关于css定位
- Web安全测试之XSS
- 百度地图sdk接入报错:com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()J
- Hadoop学习笔记之---HDFS
- HDU 4394 BFS