在排序数组中,找出给定数字的出现次数
2014-04-11 18:31
218 查看
在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
求分析复杂度,求改成非递归
int find(int *a, int n, int x) { int half; if (n <= 0) return 0; if (n == 1) return a[0] == x ? 1 : 0; if (a[0] > x || a[n - 1] < x) return 0; if (a[0] == a[n - 1]) return n; half = n / 2; if (a[half] > x) return find(a, half, x); if (a[half] < x) return find(a + half + 1, n - half - 1, x); return 1 + find(a, half, x) + find(a + half + 1, n - half - 1, x); }
求分析复杂度,求改成非递归
相关文章推荐
- 在排序数组中,找出给定数字的出现次数
- 如何在排序数组中,找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数 比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
- 在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
- 在排序数组中,找出给定数字的出现次数.比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
- 在排序数组中,找出给定数字出现的次数。比如【1,2,2,2,3】中2的出现次数为3次
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 【js实现】在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次
- 每日一道算法题:微软面试题:在排序数组中,找出给定数字出现的次数
- (算法:二分查找)在排序数组中,找出给定数字出现的次数
- [微软面试题] 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 【二分查找】在排序数组中,找出给定数字的出现次数 以及二分其他应用
- 在排序数组中,找出给定数字的出现次数
- 10、在排序数组中,找出给定数字出现的次数
- 微软面试题:在排序数组中,找出给定数字的出现次数
- 10、在排序数组中,找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数