用折半查找法实现排序好的数组的查找(有重复记录)
2011-07-09 14:51
316 查看
int halfFind(int a[],int n,int num)//二分查找,返回重复的第一个{ if(n<1) return -1; int start=0,end=n-1; int pos; while(start<end) { pos=(start+end)/2; if(a[pos]==num) end=pos; else if(a[pos]<num) start=pos+1; else end=pos-1; } if(a[start]==num) return start; return -1;}
int _tmain(int argc, _TCHAR* argv[]){ int a[10]={1,3,5,6,6,6,6,9,12,15}; int index=halfFind(a,10,6); cout<<index<<endl; return 0;}
返回结果为3
int _tmain(int argc, _TCHAR* argv[]){ int a[10]={1,3,5,6,6,6,6,9,12,15}; int index=halfFind(a,10,6); cout<<index<<endl; return 0;}
返回结果为3
相关文章推荐
- java实现查找数组中重复次数最多的字符串
- 【转|记录】如何实现按距离排序、范围查找
- java 实现二分法查找出数组重复数字
- 【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】
- 对数组进行排序,并记录下标值的Java实现
- 用折半查找法在一组排好序(递增有序或递减有序)的值中查找某个数据+ 冒泡排序+选择排序+数组排序(例子)
- 剑指offer--快速排序递归实现,年龄排序O(N)实现,旋转数组最小值查找
- 带有头指针的链表的 创建 输出 查找 删除 释放 排序(冒泡排序)功能实现(尾插法(自动记录最后一个节点))
- java 实现递归查找数组中的重复数字
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- 用xsl实现排序和判别重复记录(1)
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- 实现一个排序算法,对0~n-1范围内的n个不重复的无序数组进行排序,时间复杂度为O(n),空间复杂度为O(1)。
- 2011-12-04 15:36 JAVA实现位向量给无重复元素的整数数组排序
- 用xsl实现排序和判别重复记录(2)
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- 用xsl实现排序和判别重复记录(3)
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法