为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
二叉堆/C
来自NOCOW
< 二叉堆
//Buffalo_NGJ struct heap{ int a[32768],n; int pre(int p){return p-1>>1;}; int left(int p){return (p<<1)+1;}; int right(int p){return (p<<1)+2;}; void ins(int x){ int p;n++; for(p=n-1;p>0;){ if(x<a[pre(p)]) a[p]=a[pre(p)],p=pre(p); else break; } a[p]=x; } int pop(){ int p,x=a[0],tmp; for(p=0,n--;left(p)<n;){ tmp=(right(p)<n&&a[right(p)]<a[left(p)])?right(p):left(p); if(a[tmp]<a[n])a[p]=a[tmp],p=tmp; else break; } a[p]=a[n]; return x; } };