没有合适的资源?快使用搜索试试~ 我知道了~
在数组里面查找与目标数据接近的值(数组必须从小(0)到大排序后), 返回=相等元素的下标,或者靠近高位的元素的下标,-1=超范围
资源推荐
资源详情
资源评论
/// <summary>
/// (数组必须从小(0)到大排序后)返回=相等索引值,或者靠近高位的索引值,-1=超范围
/// </summary>
/// <param name="arr">集合数组</param>
/// <param name="查找值">要查找的对象</param>
public static int 查找近似值 ( int [ ] 集合数组 , int 查找值 )
{
int 查找方向=2;//2=初次使用,0=低位查找,1=高位查找
int 低位索引 = 0;
int 高位索引 = 集合数组. Length - 1;
while ( 低位索引 <= 高位索引 )
{
int middle = ( 低位索引 + 高位索引 ) / 2;
if ( 查找值 == 集合数组 [ middle ] )
{
return middle;//如果找到了就直接返回这个元素的索引
}
else if ( 查找值 > 集合数组 [ middle ] )
{
if ( 查找方向 ==1) 低位索引 = middle + 1;
else if ( 查找方向 == 2 ) 查找方向 = 1;
else
{
while ( 高位索引 >= 0 )
{
if ( 集合数组 [ 高位索引 ] <= 查找值 )
{
return 高位索引+1;//如果找到了就直接返回这个元素的索引
}
/// (数组必须从小(0)到大排序后)返回=相等索引值,或者靠近高位的索引值,-1=超范围
/// </summary>
/// <param name="arr">集合数组</param>
/// <param name="查找值">要查找的对象</param>
public static int 查找近似值 ( int [ ] 集合数组 , int 查找值 )
{
int 查找方向=2;//2=初次使用,0=低位查找,1=高位查找
int 低位索引 = 0;
int 高位索引 = 集合数组. Length - 1;
while ( 低位索引 <= 高位索引 )
{
int middle = ( 低位索引 + 高位索引 ) / 2;
if ( 查找值 == 集合数组 [ middle ] )
{
return middle;//如果找到了就直接返回这个元素的索引
}
else if ( 查找值 > 集合数组 [ middle ] )
{
if ( 查找方向 ==1) 低位索引 = middle + 1;
else if ( 查找方向 == 2 ) 查找方向 = 1;
else
{
while ( 高位索引 >= 0 )
{
if ( 集合数组 [ 高位索引 ] <= 查找值 )
{
return 高位索引+1;//如果找到了就直接返回这个元素的索引
}
资源评论
GTM00
- 粉丝: 2
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功