空间换时间
#include <stdio.h>
#include <time.h>
#define SIZE 20
void print_array(int a[], int len)
{
int i = 0;
for (i = 1; i <= len; i++){
printf("%d,", a[i]);
}
printf("\n");
}
int static_search(int a[], int len, int key)
{
int i = len;
a[0] = key;
while (a[i] != key){
i--;
}
return i;
}
int main(void){
int a[SIZE + 1] = { 0 };
int i = 0;
int key = 0;
int index = -1;
srand((unsigned int)time(NULL));
for (i = 1; i <= SIZE; i++){
a[i] = rand() % 100;
}
key = rand() & 100;
printf("Static Search Demo\n");
printf("Key: %d\n", key);
printf("Array: \n");
print_array(a, SIZE);
index = static_search(a, SIZE, key);
if (index >= 1){
printf("SUCCED: a[%d] = %d\n", index, a[index]);
}
else{
printf("Failed!!\n");
}
system("PAUSE");
return 0;
}