首页 > 代码库 > 编程算法 - 数字在排序数组中出现的次数 代码(C)

编程算法 - 数字在排序数组中出现的次数 代码(C)

数字在排序数组中出现的次数 代码(C)


本文地址: http://blog.csdn.net/caroline_wendy


题目: 统计一个数字在排序数组中出现的次数.


通过折半查找, 找到首次出现的位置, 再找到末次出现的位置, 相减即可.

时间复杂度O(logn).


代码:

/*
 * main.cpp
 *
 *  Created on: 2014.6.12
 *      Author: Spike
 */

/*eclipse cdt, gcc 4.8.1*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int GetFirstK (int* data, int length, int k, int start, int end) {
	if (start > end)
		return -1;
	int middleIndex = (start + end)/2;
	int middleData = http://www.mamicode.com/data[middleIndex];>
输出:

result = 4