佣金计算详解02:获取目标值(比较项:一个或多个)二分查找
2011-10-28 13:33
363 查看
int getDepGroupNo(char* pAgentNo , char* pGroupNo , char *pAgentLevel , char* pContractNo, char* pDeptNo )
{
int iHigh;
int iLow;
int iMid; /* 二分法查找用 */
int iReturn;
iLow = 0;
iHigh = gl_agentContract_num -1;
iReturn = -1;
while(iLow<=iHigh)
{
iMid = (iLow + iHigh)/2;
iReturn = strcmp(pAgentNo,gp_agentContract[iMid].agentNo);
if(iReturn==0)
{
strcpy(pGroupNo, gp_agentContract[iMid].groupNo);
return 0;
}
else if(iReturn > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
if(iReturn!=0)
{
return -1;
}
}
int getInNetModeGroup(char *aModeGroup,char *aInnetMode)
{
int iHigh;
int iLow;
int iMid; /* 二分法查找用 */
int iReturn;
int iReturn2;
char feeId[6];
iLow = 0;
iHigh = gl_modegroup_num -1;
iReturn = -1;
while(iLow<=iHigh)
{
iMid = (iLow + iHigh)/2;
iReturn = strcmp(aModeGroup,gp_modeGroup[iMid].modeGroup);
iReturn2 = strcmp(aInnetMode,gp_modeGroup[iMid].innetMode);
if(iReturn==0)
{
if(iReturn2==0)
{
return 0;
}
else if(iReturn2 > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
else if(iReturn > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
if(iReturn!=0||iReturn2!=0)
return -1;
}
{
int iHigh;
int iLow;
int iMid; /* 二分法查找用 */
int iReturn;
iLow = 0;
iHigh = gl_agentContract_num -1;
iReturn = -1;
while(iLow<=iHigh)
{
iMid = (iLow + iHigh)/2;
iReturn = strcmp(pAgentNo,gp_agentContract[iMid].agentNo);
if(iReturn==0)
{
strcpy(pGroupNo, gp_agentContract[iMid].groupNo);
return 0;
}
else if(iReturn > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
if(iReturn!=0)
{
return -1;
}
}
int getInNetModeGroup(char *aModeGroup,char *aInnetMode)
{
int iHigh;
int iLow;
int iMid; /* 二分法查找用 */
int iReturn;
int iReturn2;
char feeId[6];
iLow = 0;
iHigh = gl_modegroup_num -1;
iReturn = -1;
while(iLow<=iHigh)
{
iMid = (iLow + iHigh)/2;
iReturn = strcmp(aModeGroup,gp_modeGroup[iMid].modeGroup);
iReturn2 = strcmp(aInnetMode,gp_modeGroup[iMid].innetMode);
if(iReturn==0)
{
if(iReturn2==0)
{
return 0;
}
else if(iReturn2 > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
else if(iReturn > 0)
iLow = iMid + 1;
else
iHigh = iMid - 1;
}
if(iReturn!=0||iReturn2!=0)
return -1;
}
相关文章推荐
- 旋转数组 二分查找 查找一个目标值
- 详解Java数据结构和算法(有序数组和二分查找)
- 二分查找容易忽略的一个bug
- HDU 3264 Open-air shopping malls [相交圆面积+二分查找]【计算几何】
- java 二分查找计算时间复杂度
- 二分查找容易忽略的一个bug
- 在一个字符串中查找是否包含某个字符串,并计算出包含的个数
- javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
- 【二分查找】求一个double型数据的平方根
- 黑马程序员_Java基础_04数组main函数args详解、数组排序、二分查找实例
- 二分查找时间复杂度的计算(转)
- 查找一个字符串出现最多,并计算其次数
- 写一个函数,实现一个整形有序数组的二分查找
- 在二分查找中的一个问题
- 判断一个二叉树是不是合法的二分查找树
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
- 在一个旋转过的有序数组上实现二分查找
- String去除字符串两端空格、将一个字符串进行反转、计算字符串中出现的的次数、获取两个字符串中最大相同字串
- 运行一个命令或程序获取结果/正则表达式查找匹配/分隔字符串
- 二分查找目标元素索引