用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...