用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

三种查找算法

2017-10-24 作者: 幽草举报

[c++]代码库

#include <iostream> 
using namespace std; 
#include <stdlib.h> 
 
 
 
 
int linear_search(int arr[],int len,int key )
{
    int i;
    for(i=0;i<len;i++)
        if(arr[i]==key)
            break;
        if(i<len)
            return i;
            else return 0;
 
 
}
 
 
 
int better_search(int arr[],int len,int key ){
int i;
for(i=len-1;i>=0;i--)
if(arr[i]==key)
break;
return i;
}
 
 
int sentinel_search(int arr[],int len,int key ){
int i;
    int last;
    last = arr[len-1];
    arr[len-1]=key;
    for(i=0;arr[i]!=key;i++)
    if(arr[i]==key)
    break;
    /*return i;
    if(last==key)
    return len-1;
    else
    return -1;
    */
    arr[len-1]=last;
    if(i<len-1||arr[len-1]==key) return i;
    else return -1;
    }
int main()
{
    int arr[]={1,2,3,4,5,6,7,8,9,10};
    printf("%d\n",linear_search(arr,10,3));
    printf("%d\n",better_search(arr,10,3));
    printf("%d\n",sentinel_search(arr,10,3));
    return 0;
     
    }


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...