// 08110F14 void game_continue(task_id c) { quest_logger_filter_disable(); prev_quest_display_number = 0; for (uint i=0; i<4; i++) if (sav1i->questlog[i].active) prev_quest_display_number++; if (prev_quest_display_number > 0) { help_system_enabled = 0; flashback(); } else set_callback2(&c2_8056938); task_del(c); }
int main() { int asc[1000],key[1000]; //asc数组放的是域名的ASCII码,key数组放的是key值 char str[1000][50],bs_str[1000][50]; //用于存储域名,其中bs_str是存放排好序的域名 //读取文件 FILE *fp; fp=fopen("list.txt","r"); //读取每个域名 int i; for(i=0;i<1000;i++) { fgets(str[i],50,fp); strcpy(bs_str[i],str[i]); //把str复制到bs_str flashback(bs_str[i]); } fclose(fp); //关闭文件 //初始化啊ASCII值数组 for(i=0;i<1000;i++) { asc[i] = ASC_value(str[i]);} ini_count(asc); //计算count的值 //计算初始话key数组 int temp; for(i=0;i<1000;i++) { temp=asc[i]-count; key[temp]=i; } //测试hash是否重复 int flag=0; for(i=0;i<1000;i++) { if(key[i]==NULL) flag++; } //printf("HASH重复数量: %d\n",flag); //测试时间 clock_t start,finish; char c[50]; //存储输入的域名 int ans; //输入域名的key值 //输入域名 //printf("输入域名:\n"); //scanf("%s",c); c[50] = "sina.com.cn"; //fp = fopen("list.txt","r"); //hash部分 start = clock(); //开始时间 for(i=0;i<10000;i++) { //fgets(c,50,fp); ans = ASC_value(c); ans = ans-count; if(ans < 0) {printf("查找失败\n");} // exit(0); } else { printf("查找结果:"); ans = key[ans]; puts(str[ans]); } } finish = clock(); //结束时间 //fclose(fp); double hash_time; //bubble(bs_str); //flashback(c); hash_time = (double)(finish - start); //printf("hash耗时: %f\n",hash_time); //二分查找部分 bubble(bs_str); start = clock(); //开始时间 /*for(i=0;i<10;i++) { puts(bs_str[i]); }*/ //FILE *fp1; //fp1 = fopen("list.txt","r"); for(i=0;i<10000;i++) { //fgets(c,50,fp1); //printf("redafile \n"); flashback(c); //printf("flashback \n"); //puts(c); ans = bs_check(bs_str,c); if(ans < 0) { printf("查找失败\n"); // exit(0); } else { printf("查找结果:"); puts(bs_str[ans]); } } finish = clock(); //结束时间 double bs_time; //fclose(fp1); bs_time = (double)(finish - start); printf("hash耗时: %f\n",hash_time); printf("二分耗时: %f\n",bs_time); return 0; }