二分查找 字符串数组

原创 2012年03月01日 10:27:10

一个有序的字符串数组ar,如字典序,找到其中值等于字符串v的元素的序号,如果有多个满足条件,则返回序号最大的。


#include<iostream>
using namespace std;

int BinarySearch(char **ar,int begin,int end,char *v)
{
	int result=-1;
	while(begin <= end)
	{
		int mid=begin+(end-begin)/2;
		if(strcmp(ar[mid],v) > 0)
			end=mid-1;
		else if(strcmp(ar[mid],v) < 0)
			begin=mid+1;
		else
		{
			if(result < mid)
				result=mid;
			begin=mid+1;
		}
	}
	return result;
}

void main()
{
	char *ar[7]={"ab","abb","abc","abc","abcd","abcde","abcdef"};
	cout<<BinarySearch(ar,0,6,"abc")<<endl;
	system("pause");
}


字符串处理算法(四)现在一个给定字符串中寻找子串的功能(不能使用库函数)[2014百度笔试题]

完成一个函数,实现在一个给定字符串中寻找子串的功能(不能使用库函数)。...
  • u011729265
  • u011729265
  • 2013年09月30日 00:01
  • 3486

Leetcode 240 Search a 2D Matrix II (二分法和分治法解决有序二维数组查找)

1.问题描述  写一个高效的算法,从一个m×nm\times n的整数矩阵中查找出给定的值,矩阵具有如下特点:    每一行从左到右递增。 每一列从上到下递增。 2. 方法与思路2.1 二分查找法 ...
  • Jeanphorn
  • Jeanphorn
  • 2015年07月23日 20:41
  • 3088

C#二维数组及字符串操作

二维数组 int r = arr.Rank;//数组的维数 Console.WriteLine("长度{0}",arr.Length);//总长度 int e=arr.GetLength(0);...
  • u010371458
  • u010371458
  • 2013年05月29日 21:30
  • 1487

【数据结构机试复习9】 二维数组中的查找 & 二分查找 & 寻找字符串

Ex1: 二维数组中的查找: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这 样的一个二维数组和一个整数,判断数组中是否含有该整数...
  • weixin_40372954
  • weixin_40372954
  • 2018年01月08日 10:12
  • 37

程序员面试金典: 9.11 排序与查找 11.1编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置。

#include #include #include #include #include #include using namespace std; /* 问题:编写一个方法,对字符...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2017年01月11日 22:07
  • 225

9.11排序与查找(二)——对字符串数组进行排序,将所有的变位词排在相邻的位置

/**  * 功能:对字符串数组进行排序,将所有的变位词排在相邻的位置。  */ 两种方法: 方法一: /** * 思路:套用排序算法,并修改比较器。这里比较器用来指示两个字符...
  • shangqing1123
  • shangqing1123
  • 2015年08月20日 17:43
  • 620

java字符串数组实现大数据运算

  • 2017年12月24日 23:52
  • 1KB
  • 下载

Android String字符串数组动态增加

  • 2018年01月09日 17:15
  • 14.35MB
  • 下载

java字符串数组的增删改查

  • 2016年04月03日 20:45
  • 21KB
  • 下载

C#字符串数组求交集并集

  • 2013年11月25日 21:29
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二分查找 字符串数组
举报原因:
原因补充:

(最多只允许输入30个字)