正在加载图片...
HeapCreate( sqlist &L, int s, int len ) e=Lrs; forg=2*s :j<=len; j*=2) ifgi<len & l.rlil-keyLr[j+l]. key)j++ ife.key>=L. rlj. key) break;/无须调整 大的数据往上提,s往下移,继续调整* Lsm;s臣ak山a面 rs=e; S的左右子树必须均为堆 才可以调整 Heap Sort(sqlist &li for(i-Llength/2; i>0; i-. Heap Create(l,i, Llength for(i=Llength; il; i-- Lr←L.r[i; Heap Create(L, 1, i-1); 4|2345|21234|8|621 数 据 结 构 之 内 部 排 序 41 调 整 以 s 为 根 结 点 的 树 为 堆 HeapCreate( SqList &L , int s , int len ){ e=L.r[s]; for(j=2*s ;j<=len ; j*=2){ if(j<len && L.r[j].key<L.r[j+1].key) j++; if(e.key>=L.r[j].key) break;//无须调整 /* 大的数据往上提,s 往下移 ,继续调整*/ L.r[s]=L.r[j] ; s =j ;} L.r[s]=e ; } s =1 S的左右子树必须均为堆 才可以调整 数 据 结 构 之 内 部 排 序 42 堆 排 序 算 法 描 述 HeapSort(SqList &L){ for( i=L.length/2 ; i>0 ; i--) HeapCreate( L , i , L.length ); for( i=L.length ; i>1 ; i-- ) { L.r[1] ↔L.r[i]; HeapCreate(L , 1 , i-1); } }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有