TAG 插入排序 二分法
我是用插入排序做的,在插入的时候使用二分法查找位置。用数组idx记录下标,只移动索引,提高速度。
if ( num>0 )
{
int p=bin_search(0,num-1,stu[num].pro);
for (int i=num-1; i>p; --i)
{
idx[i+1]=idx[i];
}
idx[p+1]=num;
}
}
int main(int argc, char *argv[])
{
scanf("%d", &t);
first=true;
while ( t-- )
{
if ( !first )
{
printf("/n");
}
else
{
first=false;
}
flag=true;
num=-1;
while ( flag )
{
scanf("%s",commamd);
switch( commamd[0] )
{
case 'A':add();
break;
case 'Q': if (num%2==0)
{
printf("%s/n", stu[ idx[num/2] ].name);
}
else
{
printf("No one!/n");
}
break;
case 'E': flag=false;
if (num%2==0)
{
printf("%s is so poor./n", stu[ idx[num/2] ].name);
}
else
{
printf("Happy BG meeting!!/n");
}
break;
}
}
}
return 0;
}