#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; |
|
} |
by: 发表于:2017-12-13 10:33:26 顶(0) | 踩(0) 回复
??
回复评论