关于折半算法!!
自学的,这两天看到了指针书上有一段例程如下
char *p[]={"l",
"January",
"February",
…,
"December"};
char temp;
int n=13;
int i,j,g;
for (g=n/2;g>0;g/=2)
for (i=g;i<n;i++)
for (j=i-g;j<g;“这是什么忘了”)
{
if (strcmp(*p[j]<*p[j+i])<0)
break;
temp=*p[j];
*p[j]=*p[j+i];
*p[j+i]=temp;
}
…
这个程序是把指针数组的字串排序,非常不明白这个程序的算法,请高手解释一下。谢谢
[[it] 本帖最后由 crowkkk 于 2008-12-2 18:35 编辑 [/it]]