测试_StringFind_IntArrFind
需求:
1000000个数,
存在char*里strstr("9999,") 快?
存在IntArr里for循环查找 快?
void testarr_init(int testnum, int **intarr, char **stringarr)
{
*intarr = (int *)calloc(testnum, sizeof(int));
*stringarr = (char *)calloc(testnum, sizeof(char)*8);
int *pIntarr = *intarr;
char temp[16];
for (int i= 0; i< testnum; i++)
{
*pIntarr++ = i;
itoa(i, temp, 10);
strcat(temp, ",");
strcat(*stringarr, temp);
}
}
void compare_intarr_string_find()
{
int testnum = 100000;
int *intarr_head;
char *stringarr_head;
testarr_init(testnum, &intarr_head, &stringarr_head);
int iKey = intarr_find(99999, intarr_head, testnum);
char *pKey = string_find("99999,", stringarr_head);
printf("%d\n", intarr_head[iKey]);
printf("%s\n", pKey);
free(stringarr_head);
free(intarr_head);
}

结论:
intarr查找较快.
浙公网安备 33010602011771号